springboot打jar/war包解決第三方依賴jar包的問題
阿新 • • 發佈:2018-11-22
轉載自: http://www.jianshu.com/p/574f74d1d0ee
SpringBoot+Maven
的專案,有時候會遇到第三方jar包依賴Maven倉庫。Maven有一種方式可以將本地的Jar包依賴到專案中而不需要先deploy到Maven庫上。
具體做法如下:
1. 新建了一個lib包在專案根目錄下,與src同級。(也可不同級,具體看自己喜好) 2. pom檔案中依賴這樣寫: <dependency> <groupId>com.alipay.api</groupId> <artifactId>sdk</artifactId> <version>2.0</version> <scope>system</scope> <systemPath>${project.basedir}/lib/sdk-2.0.jar</systemPath> </dependency> <dependency> <groupId>com.alipay.api</groupId> <artifactId>trade-sdk</artifactId> <version>2.0</version> <scope>system</scope> <systemPath>${project.basedir}/lib/trade-sdk-2.0.jar</systemPath> </dependency> ${project.basedir}是自帶變數,指的是當前專案的根目錄。 通過這種方式引入依賴後,在編碼的時候沒有問題,但是用mvn clean package打成jar包後執行就是報錯,找不到這些jar包中的相關類。 把jar包解壓後在BOOT-INF/lib裡面也確實沒有發現用上述方式引入的jar包,看來是沒有把lib目錄裡面的jar打進去。 修改pom檔案,在build標籤下增加如下配置: <resources> <resource> <directory>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> 目的就是把src/lib下的jar打到BOOT-INF/lib下,但是必須要增加第二個resource,不然src/main/resources下的配置檔案又打不進jar包了。 --------------------------------------------------------------------------------------------------------------- 如果要打成war包,則pom檔案需要這樣改: <!--設定maven-war-plugins外掛,否則外部依賴無法打進war包 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <webResources> <resource> <directory>lib</directory> <targetPath>WEB-INF/lib/</targetPath> <includes> <include>**/*.jar</include> </includes> </resource> </webResources> </configuration> </plugin>
上面就是SpringBoot
專案部署時,打成jar包/war包時第三方依賴jar包的解決辦法。根據需要打成包的型別選擇上述兩種方式之一配置之後。執行Maven clean package即可。
作者:明天你好向前奔跑
連結:https://www.jianshu.com/p/574f74d1d0ee
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。