Spring Boot Maven项目使用SystemPath引用线上部署遇到的问题
使用了第三方Jar包,最先考虑的是不使用Maven仓库,便于离线开发。首先采用了方案:
<dependency>
<groupId>com.tievd.third</groupId>
<artifactId>arcvideo</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${basedir}/lib/face-api-1.0.jar</systemPath>
</dependency>
但很多人讲到这里就没讲了,你会发现在IDE里会运行的非常好,一旦部署在线上环境,就会出现莫名其妙的问题。比如我遇到的不会抛异常,会一直卡在对象创建上。后来一直找不到问题出现在哪里,就改用了私服,发现问题解决,所以定位在问题肯定出现在打包上:第一步:确认解压之前的Jar包发现确实没有把第三方包打入进去第二步:在build节点加入一下语句使包正确的导入
<resources>
<resource>
<directory>${project.basedir}/lib</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>
- 重新打包发现可以在线上环境正常部署了。