java.lang.NoClassDefFoundError: com/taobao/api/internal/util/StringUtils
springboot项目用到了淘宝的第三方jar包,项目打成jar包到服务器运行,报:java.lang.NoClassDefFoundError: com/taobao/api/internal/util/StringUtils
经查是因为打包时没有将三方jar包打入
解决方法:
在sprinboot项目中pom.xml文件加<includeSystemScope>true</includeSystemScope>,代表maven打包时会将外部引入的jar包(比如在根目录下或resource文件下新加外部jar包)打包到项目jar,在服务器上项目才能运行,不加此配置,本地可以运行,因为本地可以再lib下找到外部包,但是服务器上jar中是没有的。
jar包位置:
pom.xml
<dependency>
<groupId>taobao-sdk-java-auto_1597562481412-20220216</groupId>
<artifactId>taobao-sdk-java-auto_1597562481412-20220216</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>${project.basedir}\src\lib\taobao-sdk-java-auto_1597562481412-20220216.jar</systemPath>
</dependency>
<dependency>
<groupId>taobao-sdk-java-auto_1597562481412-20220216-source</groupId>
<artifactId>taobao-sdk-java-auto_1597562481412-20220216-source</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>${project.basedir}\src\lib\taobao-sdk-java-auto_1597562481412-20220216-source.jar</systemPath>
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.kingdee.jky.JkyApplication</mainClass>
<layout>ZIP</layout>
<includeSystemScope>true</includeSystemScope>//报错是未加这个配置
</configuration>
</plugin>
</plugins>
</build>