接 使用maven的systemPath本地引用oracle的jdbc驱动包 一文,使用systemPath的形式引用本地jar包,在直接使用idea开发运行时不会有什么问题,oracle的jdbc驱动包能够正常引用,但是当我们使用maven打包之后就出问题了。我们使用压缩软件打开打包出的jar包可以发现,使用systemPath引入的jar包并没有复制到打包出来的jar包。这就是为什么使用打包之后的jar运行就会报错的原因。
怎么解决这个问题呢?一个办法是修改pom文件,指定在打包的时候,将本地的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>
问题大概率即可解决,但是如果我们用的是SpringBoot的话,还有个更简单的办法。只需要给pom中的spring-boot-maven-plugin插件添加一个配置即可在打包的时候引入scope为system的jar包,pom中的代码如下:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
</build>
打包后使用压缩软件查看jar包
完整的代码参考:https://gitee.com/lqccan/blog-demo/tree/master/%E5%90%8E%E7%AB%AF/ojdbc-package