Springboot中如何引入本地jar包,並通過maven把項目成功打包成jar包部署
阿新 • • 發佈:2018-09-03
exce b2c ast jar mave 調用 span aps ide
2.在pom文件定義幾個依賴指向剛才引入的文件
最近嘗試引入阿裏雲的短信驗證碼,阿裏雲的core sdk是maven就有的,但是短信相關的jar包卻不是放在maven的,所以得引入本地的下載回來的jar包。本地開發直接引入,idea是可以直接跑調用是沒問題的。但是打成jar包部署的時候,項目能跑,但是到關鍵的調用短信sdk的時候就爆ClassNofFoundException錯誤。看了很多網上的帖子,很多都說用plugin 中resource來弄,對我的項目一點鳥用也沒有。最後還是在stackoverflow上找到了答案,所以做了以下總結。
解決
如何引入本地jar包
1.在resources下面新建lib文件夾,並把jar包文件放到這個目錄下
2.在pom文件定義幾個依賴指向剛才引入的文件
<dependency>
<groupId>com.aliyun.alicom</groupId>
<artifactId>alicom-mns-receive-sdk</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/lib/alicom-mns-receive-sdk-1.0.0.jar</systemPath>
</dependency>
<dependency>
<groupId>com.aliyun.mns</groupId>
<artifactId>aliyun-sdk-mns</artifactId>
<version>1.1.8</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/lib/aliyun-sdk-mns-1.1.8.jar</systemPath>
</dependency>
</dependency>
註意:重點是systemPath這個路徑必須得是你jar的路徑。其他的按照套路填就行,要求不是太嚴格。${project.basedir}只是一個系統自己的常量,不用管它
如何把項目打成jar,同時把本地jar包也引入進去
直接在maven的pom裏給springboot的打包插件引入一下參數就行
<includeSystemScope>true</includeSystemScope>
總體是這樣的
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
</build>
Springboot中如何引入本地jar包,並通過maven把項目成功打包成jar包部署