最近在做一個SpringBoot的小工程,這類工程通常都是使用maven管理依賴並打包,但最近這個工程因為某些原因(比如企業自己的jar包,或者修改後的開源項目jar包)需要引用本地jar包。這種情況有兩種方案可以採用:
一,搭建一個本地maven源,仍然通過maven管理。這種方法的缺點是,一旦工程需要多人維護,每人都需要搭一個本地源,比較麻煩,除非公司有公用的內部maven源,否則這種方案反而增加工作量。
二,以外部jar方式匯入本地jar包,然後配置maven的打包參數。這個方式比較靈活,jar包跟著工程走,在工程不大的情況下比較容易管理。但是網上找了很多pom.xml的配置,幾乎就看不到一個對的,自己花了個把小時研究終於試出一種對的,貼出來供大家參考。
首先在工程下建一個lib目錄(和src平級),把本地jar拷進去。
然後把這些包添加進工程,我用的idea,是在Project Settings -- Libraries裡操作,很簡單就不貼圖了。
接下去修改pom.xml的<build>段,如果沒有,放在和<dependencies>平級,另外這裡的路徑是我這個目錄結構才用的路徑,如果lib位置和我不一樣需要自主修改:
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><mainClass>com.example.TransferApplication</mainClass></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin><plugin><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding><compilerArguments><extdirs>${project.basedir}/lib</extdirs></compilerArguments></configuration></plugin></plugins><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></build>