maven引入本地jar包报错:java.lang.NoClassDefFoundError

本文介绍了在Maven项目中导入并部署本地jar包时遇到的`NoClassDefFoundError`错误,以及解决该问题的两种方法:通过在pom.xml中添加依赖并指定systemPath,以及使用spring-boot-maven-plugin配置包含系统范围的依赖。同时,文章还详细阐述了Maven依赖的scope属性,包括compile、test、provided、runtime和system的区别,帮助理解不同scope对打包的影响。

问题:

maven项目导入自己的jar包,部署到服务器上找不到包,
报错:java.lang.NoClassDefFoundError


解决方案

需要告诉maven,将你感刚刚引入的jar包打进来。

1.引入本地jar:

<dependency>
	 <groupId>com.yinhai</groupId>
	 <artifactId>ta3-compatible-ta3.13-4.0.0-SNAPSHOT.jar</artifactId>
	 <version>3.13-4.0.0</version>
	 <scope>system</scope>
	 <systemPath>${pom.basedir}/src/main/resources/lib/ta3-compatible-ta3.13-4.0.0-SNAPSHOT.jar</systemPath>
</dependency>

2.告诉maven将本地jar打入:

<plugin>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-maven-plugin</artifactId>
	<configuration>
		<includeSystemScope>true</includeSystemScope>
	</configuration>
</plugin>

maven小常识:
maven打包可以控制是否需要将jar打入。通过scope标签

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-test</artifactId>
 <scope>test</scope>
</dependency>

scope详解:
没有指定scope,说明scope是compile

参数解释是否会被打⼊最终的jar
compile默认的scope
test测试使⽤
provided编译需要
runtime编译不需要,运⾏时需要(接⼝与实现分离)
system加载本地jar
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值