springboot解決第三方依賴jar包的問題


公司現在用的是springboot+maven,想要把一些老的項目都改成這種框架。但是一些老的項目中有好多第三方的jar包或者是自己的jar包,maven庫上沒有。最初的解決方案是一個個的deploy到maven庫上,但是遇到太多的三方jar包就太費事了。網上查了一下發現maven有一種方式可以將本地的Jar包依賴到項目中而不需要先deploy到maven庫上。具體做法如下:

跟普通的java項目一樣,新建個lib目錄放jar包,我建在了src下。

pom文件中依賴這樣寫:

1 <!--添加外部依賴-->
2     <dependency>
3       <groupId>Ice</groupId>
4       <artifactId>Ice</artifactId>
5       <version>1.0</version>
6       <scope>system</scope>
7       <systemPath>${basedir}/src/lib/Ice.jar</systemPath>
8     </dependency>

basedir是自帶變量,指的是當前項目的絕對路徑,三圍自己隨便寫。

通過這種方式引入依賴后,在編碼的時候沒有問題,但是用mvn clean package打成jar包后運行就是報錯,正式找不到這些jar包中的相關類。把jar包解壓后在BOOT-INF/lib里面也確實沒有發現用上述方式引入的jar包,看來是沒有把src/lib目錄里面的jar打進去,后來通過查找也終於找到方法了,修改pom文件,在build標簽下增加如下配置:

 1 <resources>
 2       <resource>
 3         <directory>src/lib</directory>
 4         <targetPath>BOOT-INF/lib/</targetPath>
 5         <includes>
 6           <include>**/*.jar</include>
 7         </includes>
 8       </resource>
 9       <resource>
10         <directory>src/main/resources</directory>
11         <targetPath>BOOT-INF/classes/</targetPath>
12       </resource>
13     </resources>

目的就是把src/lib下的jar打到BOOT-INF/lib下,但是必須要增加第二個resource,不然src/main/resources下的配置文件又打不進jar包了。

 

如果要打成war包,則pom文件需要這樣改:

 1 <!--設置maven-war-plugins插件,否則外部依賴無法打進war包-->
 2       <plugin>
 3         <groupId>org.apache.maven.plugins</groupId>
 4         <artifactId>maven-war-plugin</artifactId>
 5         <configuration>
 6           <webResources>
 7             <resource>
 8               <directory>lib</directory>
 9               <targetPath>WEB-INF/lib/</targetPath>
10               <includes>
11                 <include>**/*.jar</include>
12               </includes>
13             </resource>
14           </webResources>
15         </configuration>
16       </plugin>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM