Springboot项目本地运行无问题而打成jar包出现问题ClassNotFoundException
时间: 2024-01-10 17:02:29 浏览: 117
出现 `ClassNotFoundException` 的原因可能是因为在打包时没有将依赖包一起打进去,导致在运行时找不到相关的类。可以尝试以下几种解决方法:
1. 在 pom.xml 文件中添加以下配置,将依赖包打进可执行的 jar 包中:
```xml
<build>
<plugins>
<!-- 这里是maven-shade-plugin插件的配置 -->
<plugin>
<!-- 打包可执行的jar包 -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.1</version>
<configuration>
<!-- 不需要打包源码 -->
<shadedArtifactAttached>false</shadedArtifactAttached>
<shadedClassifierName>allinone</shadedClassifierName>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>xxx.xxx.xxx.Application</mainClass>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.handlers</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.schemas</resource>
</transformer>
</transformers>
</configuration>
<executions>
<execution>
<!-- 执行打包命令:mvn package -->
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
```
2. 如果使用了 IntelliJ IDEA,可以在打包时勾选 "Build JAR",并在下拉框中选择 "Build JAR from modules with dependencies"。
3. 如果是使用命令行打包,则可以使用以下命令:
```bash
mvn clean package -Dmaven.test.skip=true
```
其中 `-Dmaven.test.skip=true` 表示跳过测试。
阅读全文