Springboot中引入本地jar包,並通過maven把專案打成可執行jar包
阿新 • • 發佈:2018-12-07
最近把以往的老專案用SpringBoot進行了重構,老專案中有部分本地依賴包不是放在maven庫裡的,是本地開發直接引入,需要在mvn package的時候把本地依賴jar也打進可執行包中。
這種通用問題,在網上找了一圈卻沒發現什麼好的解決辦法,表示很驚訝。特此把解決辦法記錄共享下。
1.網上較多的推薦方法:在pom檔案定義依賴來一一對應本地依賴的相關jar包
<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>
參考文章:https://www.cnblogs.com/liukunjava/p/9577768.html
但是當本地jar包個數較多的時候,一個個的新增pom依賴,顯得有點兒麻煩
2.新增maven外掛(親試可行)
在resource目錄下新建一個目錄來存放本地依賴jar包
然後在pom檔案中新增
maven-compiler-plugin
外掛,並設定本地依賴檔案的路徑
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.5.1</version> <inherited>true</inherited> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> <compilerArguments> <extdirs>src/main/resources/lib/cdh</extdirs> </compilerArguments> </configuration> </plugin> </plugins> <resources> <resource> <directory>src/main/resources/lib/cdh</directory> <targetPath>BOOT-INF/lib/</targetPath> </resource> <resource> <directory>src/main/resources</directory> <excludes> <exclude>**/*.jar</exclude> </excludes> <targetPath>BOOT-INF/classes/</targetPath> </resource> <resource> <directory>src/main/resources</directory> <excludes> <exclude>**/*.jar</exclude> </excludes> <targetPath>./</targetPath> </resource> </resources> </build>
這樣當執行mvn package時就會引入設定目錄下的所有本地依賴包,通過idea直接跑或者rebuild都是沒問題的。