解决Spring-boot 引入系统包导致的java.lang.NoClassDefFoundError
spring-boot
spring-projects/spring-boot: 是一个用于简化Spring应用开发的框架。适合用于需要快速开发企业级Java应用的项目。特点是可以提供自动配置、独立运行和内置的Tomcat服务器,简化Spring应用的构建和部署。
项目地址:https://gitcode.com/gh_mirrors/sp/spring-boot
·
最近在做一个含支付宝支付的项目,架构用的是Spring-boot;支付宝官网提供一个支付SDK jar下载使用,把jar直接拷贝到项目中引用使用。jar包放resources下的jar文件夹
<dependency>
<groupId>com.alipay</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>3.0.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/jar/alipay-sdk-java-3.0.0.jar</systemPath>
</dependency>
项目本地启动好好的,但构建项目jar并启动的时候就有问题了,报一个java.lang.NoClassDefFoundError: com/alipay/api/AlipayApiException错误,这种情况根据经验可以判断我放resources下SDK jar包在maven构建项目jar时被忽略了。
使用WinRar等解压工具查看构建的项目jar【目录路径BOOT-INF/lib】可以查看到支付宝SDK并没有被构建到此文件夹。
解决办法
修改pom.xml,添加resources声明
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources/jar</directory>
<targetPath>BOOT-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<targetPath>BOOT-INF/classes/</targetPath>
</resource>
</resources>
</build>
end

推荐文章:
1:程序员如何脱单?看完脱单率至少增加80%
2:【小项目】Spring boot基于Redis缓存商城分类,商品信息
3:Java基于Redis实现“附近的人”
spring-projects/spring-boot: 是一个用于简化Spring应用开发的框架。适合用于需要快速开发企业级Java应用的项目。特点是可以提供自动配置、独立运行和内置的Tomcat服务器,简化Spring应用的构建和部署。
最近提交(Master分支:2 个月前 )
72eaeecd
Closes gh-48296
16 小时前
8eb90644
Closes gh-48306
16 小时前
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)