1.近期在做项目时使用了阿里云的短信服务, 本地将依赖加入以后,运行调试没有任何问题。
2.但是将项目打包发布之后,短信服务就会报错,通过排查,alicom-mns-receive-sdk-1.0.1.jar 、aliyun-java-sdk-dybaseapi-1.0.0.jar 这两个依赖包没有打包进去,里面的类报“java.lang.ClassNotFoundException”错误
3.首先其他依赖按照导入外部依赖导入就好了,这两个依赖在pom.xml中设置
网上有的意见是直接这样导入就好了
<dependency>
<groupId>com.aliyun.alicom</groupId>
<artifactId>aliyun-mns-receive-sdk</artifactId>
<version>1.0.1</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/lib/alicom-mns-receive-sdk-1.0.1.jar</systemPath>
</dependency>
<dependency>
<groupId>com.aliyuncs.dybaseapi</groupId>
<artifactId>model.v20170525</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/lib/aliyun-java-sdk-dybaseapi-1.0.0.jar</systemPath>
</dependency>
但是system这样是系统的属性,单单这样设置是没有效果的,打包之后,依然没有这两个依赖。
在加一个配置,此时打包以后,去看打包以后的jar包依赖已经打包好了。
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>