下文笔者讲述maven引入本地jar包时,运行报错"java.lang.NoClassDefFoundError"的处理方法分享,如下所示
今天在编写maven项目 导入本地jar包 部署到服务器上找不到包 报错信息如:java.lang.NoClassDefFoundError 那么如何解决呢? 这种问题是由于,本地jar包在打包的时,没有打入到 项目中,我们只需在maven打包时,告诉maven项目 需把这个jar包打入即可
maven引入本地jar的示例
<dependency> <groupId>com.java265</groupId> <artifactId>test-core-SNAPSHOT.jar</artifactId> <version>1.0.0</version> <scope>system</scope> <systemPath>${pom.basedir}/src/main/resources/lib/test-core-SNAPSHOT.jar</systemPath> </dependency>
配置maven将本地jar打入package中
<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
参数 | 备注 | 是否会被打入package中jar |
compile | 默认scope | 是 |
test | 测试使用 | 否 |
provided | 编译需要 | 否 |
runtime | 编译不需要,运行时需要 | 是 |
system | 加载本地jar | 否 |