Maven pom.xml 添加本地jar包依賴以及打包方法
Maven項(xiàng)目打包時(shí),如果遇到需要添加本地jar包依賴的時(shí)候,可以選擇兩種方法:
1. 安裝到本地倉(cāng)庫(kù)
第一種方法比較常規(guī),適用于需要添加的jar包也是由maven項(xiàng)目導(dǎo)出,含有pom文件的時(shí)候。只需要將jar包安裝到本地maven倉(cāng)庫(kù)下,然后添加依賴即可。
(1)安裝到本地倉(cāng)庫(kù),執(zhí)行以下命令(其中的-Dfile/-DgroupId/-DartifactId/-Dversion項(xiàng)根據(jù)pom文件內(nèi)容填寫(xiě)):
mvn install:install-file -Dfile=xxxxx.jar -DgroupId=xxx.xxx.xxx -DartifactId=xxxxx -Dversion=1.0.0 -Dpackaging=jar
(2)安裝之后可以在本地倉(cāng)庫(kù)中找到對(duì)應(yīng)的jar包。然后將對(duì)應(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信息,從而無(wú)法安裝進(jìn)本地倉(cāng)庫(kù)的情況。做法是:先配置本地jar包依賴,然后在build時(shí)將設(shè)置將jar包導(dǎo)出,同時(shí)配置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)出到項(xiàng)目最終的依賴庫(kù)中:
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <includeSystemScope>true</includeSystemScope> </configuration> </plugin>
(3)如果項(xiàng)目使用maven-jar-plugin插件打包的話,還需要在manifectEntries中添加對(duì)應(yīng)的jar包信息;否則雖然jar包導(dǎo)出了,但是項(xiàng)目生成的MANIFEST.MF文件中沒(méi)有對(duì)應(yīng)的依賴信息,也會(huì)導(dǎo)致運(yùn)行時(shí)找不到對(duì)應(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)最后附上一個(gè)項(xiàng)目完整的<build>配置(該配置可以將最終生成的jar包和依賴庫(kù)、配置文件分開(kāi))。
<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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Eclipse Validating緩慢的優(yōu)化
這篇文章主要介紹了詳解Eclipse Validating緩慢的優(yōu)化,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03Eclipse+Webservice簡(jiǎn)單開(kāi)發(fā)實(shí)例
這篇文章主要介紹了Eclipse+Webservice簡(jiǎn)單開(kāi)發(fā)實(shí)例的相關(guān)資料,需要的朋友可以參考下2016-02-02Java中split根據(jù)"."分割字符串問(wèn)題舉例
split表達(dá)式其實(shí)就是一個(gè)正則表達(dá)式,* | . ^ 等符號(hào)在正則表達(dá)式中屬于一種有特殊含義的字符,下面這篇文章主要給大家介紹了關(guān)于Java中split根據(jù)“.“分割字符串問(wèn)題的相關(guān)資料,需要的朋友可以參考下2022-10-10SpringBoot中使用Servlet的兩種方式小結(jié)
這篇文章主要介紹了SpringBoot中使用Servlet的兩種方式小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07關(guān)于SpringBoot配置文件加載位置的優(yōu)先級(jí)
這篇文章主要介紹了關(guān)于SpringBoot配置文件加載位置的優(yōu)先級(jí),我們也可以通過(guò)spring.config.location來(lái)改變默認(rèn)的配置文件位置,項(xiàng)目打包好后,我們可以通過(guò)命令行的方式在啟動(dòng)時(shí)指定配置文件的位置,需要的朋友可以參考下2023-10-10Java實(shí)現(xiàn)SM3加密和驗(yàn)證的示例代碼
在商用密碼體系中,SM3主要用于數(shù)字簽名及驗(yàn)證、消息認(rèn)證碼生成及驗(yàn)證、隨機(jī)數(shù)生成等,其算法公開(kāi),本文給大家詳細(xì)介紹了使用Java實(shí)現(xiàn)SM3加密和驗(yàn)證,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下2023-12-12