Maven導(dǎo)入本地jar包的實(shí)現(xiàn)步驟
軟件項(xiàng)目管理和發(fā)布工具M(jìn)aven給java的開(kāi)發(fā)帶來(lái)了很多的方便。需要引用其他jar包的時(shí)候只需要在pom.xml添加相關(guān)的依賴,maven就會(huì)自動(dòng)解析依賴、下載jar包,更新jar包也只需要修改version字段,大大簡(jiǎn)化了jar包的引用。但是有時(shí)候我們要用的某幾個(gè)包在maven上不存在,只能下載jar包到本地并添加到j(luò)ava項(xiàng)目中,然而問(wèn)題隨之而來(lái):maven只能打包pom.xml里面聲明的依賴,不能識(shí)別本地jar包。本文介紹3種把本地jar包添加到pom.xml的方式。
1、 在本地maven倉(cāng)庫(kù)安裝本地jar包
maven install可以把指定的文件安裝到本地maven倉(cāng)庫(kù)(使用maven指令前需要安裝apache maven)。有三種install方式:
(1)mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>
指定jar包、groupid、artifactId和version,maven會(huì)自動(dòng)生成相應(yīng)的pom.xml文件。
(2)mvn install:install-file -Dfile=<path-to-file> -DpomFile=<path-to-pomfile>
如果jar包是用maven打包生成的,可以直接指定jar包和pom.xml文件。
(3)mvn install:install-file -Dfile=<path-to-file>
如果jar包是用maven打包生成的,maven 2.5版本會(huì)自動(dòng)根據(jù)jar包生成pom.xml文件。
下面按照方法(1)給出一個(gè)例子,方法(2)和(3)類(lèi)似:
首先創(chuàng)建兩個(gè)項(xiàng)目:LocalJarforMavenDemo(Maven項(xiàng)目),LocalJar(普通java項(xiàng)目)。
(1)LocalJar添加一個(gè)類(lèi):
public class MethodOne {
public void method(){
System.out.println("method in MethodOne called.");
}
}(2)LocalJar打包:localjar-1.0.0.jar,在windows命令窗口輸入mvn install指令:mvn install:install-file -Dfile=LocalJar.jar -DgroupId=nlp -DartifactId=localjar -Dversion=1.0.0 -Dpackaging=jar

安裝成功后,在.m2/repository文件夾里可以看到j(luò)ar包和pom.xml文件。
(3)LocalJarforMavenDemo項(xiàng)目的pom.xml添加localjar-1.0.0.jar包:
<dependency>
<groupId>nlp</groupId>
<artifactId>localjar</artifactId>
<version>1.0.0</version>
</dependency>成功導(dǎo)入包后,就可以引用localjar-1.0.0.jar包里的類(lèi)了:
/**
* Created by Alex on 2017/1/15.
*/
public class TestLocalJar {
private static Logger logger = LoggerFactory.getLogger(TestLocalJar.class);
public void testMethod(){
logger.info("testMethod in TestLocalJar");
MethodOne methodOne = new MethodOne(); //localjar-1.0.0.jar的類(lèi)
methodOne.method();
}
}2、把本地jar包放在項(xiàng)目的某個(gè)目錄中
把本地jar包放在項(xiàng)目的某個(gè)目錄中,就可以在pom.xml中引用該jar包了。在項(xiàng)目中構(gòu)建目錄,pom.xml添加reposiroty和dependency:
<repositories>
<repository>
<id>localrepository</id>
<url>file://${basedir}/repo</url>
</repository>
</repositories>
<dependency>
<groupId>nlp</groupId>
<artifactId>localjar</artifactId>
<version>1.0.0</version>
</dependency>

3、使用scope system依賴
和方法2類(lèi)似,pom.xml添加dependency,但不需要添加。這種方法可能出現(xiàn)奇怪的錯(cuò)誤,所以不推薦使用。
<dependency>
<groupId>nlp</groupId>
<artifactId>localjar</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/repo/nlp/localjar/1.0.0/LocalJar.jar</systemPath>
</dependency>
參考資料
1、https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html
2、http://doduck.com/adding-local-jar-in-maven-local-repository/
到此這篇關(guān)于Maven導(dǎo)入本地jar包的實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)Maven導(dǎo)入本地jar內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- maven無(wú)法自動(dòng)導(dǎo)入依賴jar包解決方式
- maven導(dǎo)入本地jar包的三種方式
- Maven配置文件修改及導(dǎo)入第三方j(luò)ar包的實(shí)現(xiàn)
- 如何把本地jar包導(dǎo)入maven并pom添加依賴
- 將下載好的jar包導(dǎo)入到本地maven倉(cāng)庫(kù)中操作
- maven實(shí)現(xiàn)jar包導(dǎo)入+導(dǎo)出方式
- 解決IDEA中maven導(dǎo)入jar包一直報(bào)錯(cuò)問(wèn)題
- 如何在IDEA Maven項(xiàng)目中導(dǎo)入本地jar包的步驟
- IDEA引MAVEN項(xiàng)目jar包依賴導(dǎo)入問(wèn)題解決方法
- maven?導(dǎo)入resource?lib文件夾中的jar的幾種方法
相關(guān)文章
Java實(shí)現(xiàn)實(shí)時(shí)監(jiān)控目錄下文件變化的方法
今天小編就為大家分享一篇關(guān)于Java實(shí)現(xiàn)實(shí)時(shí)監(jiān)控目錄下文件變化的方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03
Springboot允許logger.debug輸出日志方式
這篇文章主要介紹了Springboot允許logger.debug輸出日志方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06
Java Fluent Mybatis 聚合查詢與apply方法詳解流程篇
Java中常用的ORM框架主要是mybatis, hibernate, JPA等框架。國(guó)內(nèi)又以Mybatis用的多,基于mybatis上的增強(qiáng)框架,又有mybatis plus和TK mybatis等。今天我們介紹一個(gè)新的mybatis增強(qiáng)框架 fluent mybatis關(guān)于聚合查詢、apply方法詳解2021-10-10
Java的動(dòng)態(tài)代理模式之Cglib代理詳解
這篇文章主要介紹了Java的動(dòng)態(tài)代理模式之Cglib代理詳解,Cglib代理也叫作?子類(lèi)代理,它是在內(nèi)存中構(gòu)建一個(gè)子類(lèi)對(duì)象從而實(shí)現(xiàn)對(duì)目標(biāo)對(duì)象功能擴(kuò)展,?有些書(shū)也將Cglib代理歸屬到動(dòng)態(tài)代理,需要的朋友可以參考下2023-11-11
Springboot一個(gè)注解搞定返回參數(shù)key轉(zhuǎn)換功能
平時(shí)在搬磚的時(shí)候,大家有沒(méi)有遇到過(guò)這樣場(chǎng)景,由于各種因素導(dǎo)致,一個(gè)接口返回的數(shù)據(jù)里面的key是A,?但是客戶端(前端)要求返回的key不叫A叫Aa?。也就是返回的值不變,就是key換了。本文將通過(guò)一個(gè)注解搞定返回參數(shù)key轉(zhuǎn)換,需要的可以了解一下2022-10-10
Java函數(shù)式編程(十二):監(jiān)控文件修改
這篇文章主要介紹了Java函數(shù)式編程(十二):監(jiān)控文件修改,本文是系列文章的第12篇,其它文章請(qǐng)參閱本文底部的相關(guān)文章,需要的朋友可以參考下2014-09-09
java 中使用匿名類(lèi)直接new接口詳解及實(shí)例代碼
這篇文章主要介紹了java 中使用匿名類(lèi)直接new接口詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2017-03-03
關(guān)于spring.factories的常用配置項(xiàng)說(shuō)明
這篇文章主要介紹了關(guān)于spring.factories的常用配置項(xiàng)說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07

