遇到的问题:项目中引用了外部的达梦jar包 在idea中正常使用 也能找到dm.jdbc.driver.DmDriver 驱动 但是当通过jenkins 构建部署到服务器上 总是报 ClassNotFoundException: dm.jdbc.driver.DmDriver 找不到驱动
应用到的驱动代码如下格式
排查步骤
1.首先看你的项目中 达梦的依赖包是否 放在 项目中的 resources 目录下的 新建的 lib 目录下面 如下图
2.查看你项目中的pom文件 达梦依赖的路径是否正确
<dependency>
<groupId>com.dm</groupId>
<artifactId>DmJdbcDriver18</artifactId>
<version>1.8</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/lib/DmJdbcDriver18.jar</systemPath>
</dependency>
<scope>
跟 <systemPath>
是必须要有的 指定你 DmJdbcDriver18.jar 包所在项目中的位置
3.查看你pom文件中 maven 打包方式 是否会把 SystemScope 配置的外部包打进你的jar包中
查看如下你的项目中是否也是这样配置 maven 进行打包的
问题就出在这里 这样的maven 打包配置 不会把 SystemScope 配置的外部包打进你的jar包中 所以 程序就找不到 /src/main/resources/lib/DmJdbcDriver18.jar
经过调整 增加以下配置 再次 进行 jenkins 打包 问题解决了
需要增加 下面这个配置
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
<includeSystemScope>true</includeSystemScope>
的作用是
告诉 Maven 在打包过程中包含系统范围的依赖项。这意味着,当使用 spring-boot-maven-plugin 插件进行重新打包时,Maven 会将系统范围内的依赖项(通常是那些不在 Maven 仓库中的本地库)一起打包到最终的可执行 JAR 文件中。
至此!经过测试 dm.jdbc.driver.DmDriver 驱动找到了 。