maven引入本地jar包,运行时报错"java.lang.NoClassDefFoundError"--如何处理呢?

语言: CN / TW / HK

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第3天,点击查看活动详情

下文笔者讲述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 | 否