工作中使用jenkins構建maven項目時,會自動從遠程maven中央倉庫拉取pom.xml需要的jar包,但是有些jar包可能是自己本人集成的或者是maven中央倉庫找不到的,這個時候使用jenkins構建項目就會報錯。
jenkins拉取的代碼,默認是在jenkins的安裝目錄下的workspace中,我是用yum安裝jenkins的,因此workspace的目錄是:/var/lib/jenkins/workspace
解決方案:
我項目的結構爲:
將包放在指定的位置,然後在pom.xml中指定包的位置,我是把依賴放在項目中創建的lib文件夾下
scope一定得是system,這樣就能找到本地的jar包了。
但是還有一個問題,就是你本地啓動沒問題,然後打包放到服務器上就發現啓動報錯,我仔細看了一下,發現是項目達成的jar包中並沒有該依賴。因此還需要在pom.xml的<build>中加入一下配置即可:
<resources>
<resource>
<directory>${project.basedir}/src/main/resources/lib</directory>
<targetPath>BOOT-INF/lib/</targetPath>
<includes>
<include>*.jar</include>
</includes>
</resource>
<resource>
<directory>${project.basedir}/src/main/java</directory>
<targetPath>BOOT-INF/classes/</targetPath>
<includes>
<include>cc</include>
</includes>
</resource>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<targetPath>BOOT-INF/classes/</targetPath>
<includes>
<include>*</include>
</includes>
</resource>
</resources>