Maven pom.xml 添加本地jar包依賴以及打包方法
Maven項目打包時,如果遇到需要添加本地jar包依賴的時候,可以選擇兩種方法:
1. 安裝到本地倉庫
第一種方法比較常規(guī),適用于需要添加的jar包也是由maven項目導(dǎo)出,含有pom文件的時候。只需要將jar包安裝到本地maven倉庫下,然后添加依賴即可。
(1)安裝到本地倉庫,執(zhí)行以下命令(其中的-Dfile/-DgroupId/-DartifactId/-Dversion項根據(jù)pom文件內(nèi)容填寫):
mvn install:install-file -Dfile=xxxxx.jar -DgroupId=xxx.xxx.xxx -DartifactId=xxxxx -Dversion=1.0.0 -Dpackaging=jar
(2)安裝之后可以在本地倉庫中找到對應(yīng)的jar包。然后將對應(yīng)的依賴信息插入到工程的pom文件即可:
<dependency> <groupId>xxx.xxx.xxx</groupId> <artifactId>xxxxx</artifactId> <version>1.0.0</version> </dependency>
2. dependency中指定scope="system"和本地jar包路徑
這種方法適用于其他方式導(dǎo)出的jar包,jar包中不含有pom信息,從而無法安裝進本地倉庫的情況。做法是:先配置本地jar包依賴,然后在build時將設(shè)置將jar包導(dǎo)出,同時配置manifest。
(1)配置本地jar包依賴(systemPath指向本地jar包路徑):
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
<version>1.11.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/xxx.jar</systemPath>
</dependency>
(2)在<build>的spring-boot-maven-plugin中設(shè)置將本地jar包導(dǎo)出到項目最終的依賴庫中:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
(3)如果項目使用maven-jar-plugin插件打包的話,還需要在manifectEntries中添加對應(yīng)的jar包信息;否則雖然jar包導(dǎo)出了,但是項目生成的MANIFEST.MF文件中沒有對應(yīng)的依賴信息,也會導(dǎo)致運行時找不到對應(yīng)的class。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>XXXX</mainClass>
</manifest>
<manifestEntries>
<Class-Path>./ lib/xxxxx.jar</Class-Path>
</manifestEntries>
</archive>
<outputDirectory>
${project.build.directory}/XXXXX
</outputDirectory>
</configuration>
</plugin>
(4)最后附上一個項目完整的<build>配置(該配置可以將最終生成的jar包和依賴庫、配置文件分開)。
<build>
<finalName>XXXXX</finalName>
<sourceDirectory>src/main/java</sourceDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<targetPath>${project.build.directory}/XXXXX</targetPath>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
<testSourceDirectory>src/test/java</testSourceDirectory>
<testResources>
<testResource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</testResource>
</testResources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.directory}XXXXX/lib
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>xxx.xxx.XXXXX</mainClass>
</manifest>
<manifestEntries>
<Class-Path>./ lib/xxxxx.jar</Class-Path>
</manifestEntries>
</archive>
<outputDirectory>
${project.build.directory}/XXXXX
</outputDirectory>
</configuration>
</plugin>
</plugins>
</build>
到此這篇關(guān)于Maven pom.xml 添加本地jar包依賴以及打包方法的文章就介紹到這了,更多相關(guān)Maven pom.xml jar包內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot中的CompletableFuture類詳解
這篇文章主要介紹了SpringBoot中的CompletableFuture類詳解,在?Java8中,引入了CompletableFuture類,它提供了一種簡單而強大的方式來執(zhí)行異步任務(wù),今天我們就來詳細解讀一下這個類,需要的朋友可以參考下2023-07-07
Spring-cloud-eureka使用feign調(diào)用服務(wù)接口
這篇文章主要為大家詳細介紹了Spring-cloud-eureka使用feign調(diào)用服務(wù)接口,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-04-04
mybatis foreach批量插入數(shù)據(jù):Oracle與MySQL區(qū)別介紹
這篇文章主要介紹了,需要的朋友可以參考下2018-01-01
Spring Boot 對接深度求索接口實現(xiàn)知識問答功能
本文詳細介紹了如何使用 Spring Boot 對接深度求索接口,實現(xiàn)知識問答功能,通過整合深度求索 API,我們可以輕松地在 Spring Boot 項目中實現(xiàn)智能問答功能,2025-02-02
spring基礎(chǔ)概念A(yù)OP與動態(tài)代理理解
這篇文章主要為大家詳細介紹了spring基礎(chǔ)概念A(yù)OP與動態(tài)代理,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-10-10
Dependency ‘XXX:‘ not found問題的三步解決
這篇文章主要介紹了Dependency ‘XXX:‘ not found問題的三步解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01

