1. 程式人生 > >Spring Boot引用本地jar包

Spring Boot引用本地jar包

       最近在做一個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>