遇到的問題:項目中引用了外部的達夢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 驅動找到了 。