Maven項目中使用本地jar包的兩種方法詳解
方法一:安裝到本地 Maven 倉庫(如果知道jar包中的groupId、artifactId、version)
1.使用 Maven 命令安裝
# 基本命令 mvn install:install-file \ -Dfile=/path/to/your.jar \ -DgroupId=com.example \ -DartifactId=custom-library \ -Dversion=1.0.0 \ -Dpackaging=jar # 實際示例(Windows) mvn install:install-file ^ -Dfile=D:\libs\custom-1.0.0.jar ^ -DgroupId=com.company ^ -DartifactId=custom-sdk ^ -Dversion=1.0.0 ^ -Dpackaging=jar # 實際示例(Linux/Mac) mvn install:install-file \ -Dfile=~/libs/alipay-sdk-java.jar \ -DgroupId=com.alipay \ -DartifactId=alipay-sdk \ -Dversion=4.35.0.ALL \ -Dpackaging=jar
2.在 pom.xml 中引用(和普通的引用一樣)
<dependency>
<groupId>com.company</groupId>
<artifactId>custom-sdk</artifactId>
<version>1.0.0</version>
</dependency>3.使用 IDEA 圖形界面安裝
方法二:使用 system scope(簡單但不推薦生產(chǎn))
1.將 jar 包放入項目目錄
project-root/
├── src/
├── pom.xml
└── libs/ # 創(chuàng)建libs目錄存放jar包
├── custom-1.0.0.jar
└── other-lib.jar
2.pom.xml 配置
<dependencies>
<!-- system scope 方式 -->
<dependency>
<groupId>com.custom</groupId>
<artifactId>custom-lib</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/custom-1.0.0.jar</systemPath>
</dependency>
<!-- 多個jar包的示例 -->
<dependency>
<groupId>com.alipay</groupId>
<artifactId>alipay-sdk</artifactId>
<version>4.35.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/alipay-sdk-java-4.35.0.ALL.jar</systemPath>
</dependency>
<dependency>
<!-- 這種添加方式groupId和artifactId不需要和jar包中一致,自己能區(qū)分就行-->
<groupId>com.jty</groupId>
<artifactId>com.jty.rfid</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<!--project.basedir:這個地方雖然是 project.basedir,但是實際上是模塊目錄-->
<systemPath>${project.basedir}/libs/rfid/comprehensive(20240827).jar</systemPath>
</dependency>
</dependencies>3.打包時需要額外配置
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<!-- 告訴編譯器system scope的jar位置 -->
<compilerArguments>
<extdirs>${project.basedir}/libs</extdirs>
</compilerArguments>
</configuration>
</plugin>
<!-- 打包時需要包含system scope的jar -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
</build>方法補充
下面小編和大家整理了一些Maven中使用本地jar包的其他方法,希望對大家有所幫助
1.使用 mvn install:install-file 安裝到本地倉庫(推薦)
這是最推薦的方式,它能夠最大程度保持 Maven 項目的整潔性與可維護性。
操作步驟:
- 打開命令行工具。
- 執(zhí)行以下命令,將本地 JAR 包安裝到 Maven 的本地倉庫中:
mvn install:install-file \ -Dfile=/path/to/your.jar \ -DgroupId=com.example \ -DartifactId=your-artifact \ -Dversion=1.0.0 \ -Dpackaging=jar
請將 /path/to/your.jar 替換為你的 JAR 包實際路徑。
在 pom.xml 中添加依賴:
<dependency> <groupId>com.example</groupId> <artifactId>your-artifact</artifactId> <version>1.0.0</version> </dependency>
優(yōu)點:
- 與其他依賴使用方式一致;
- 支持依賴傳遞;
- 更適合多人協(xié)作和構(gòu)建工具集成;
2.使用 system 作用域直接引用本地路徑(不推薦)
此方法不需要安裝到本地倉庫,直接在 pom.xml 中配置 JAR 包的路徑。
示例配置:
<dependency>
<groupId>com.example</groupId>
<artifactId>your-artifact</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/your.jar</systemPath>
</dependency>注意:${project.basedir} 表示項目根目錄,推薦將 JAR 包放在 lib 目錄中統(tǒng)一管理。
缺點:
- 無法參與依賴傳遞;
- 路徑硬編碼,不利于跨平臺、多人協(xié)作;
- Maven 官方不推薦使用。
注意:
如打包需要如下配置:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>| 方法 | 推薦程度 | 特點 |
|---|---|---|
| install-file 安裝到本地倉庫 | ????? | 規(guī)范、支持依賴傳遞、適合長期使用 |
| system 作用域引用 | ?? | 簡單快捷,但不規(guī)范、不推薦 |
3.直接配置pom.xml文件
通過修改pom.xml文件,使用<scope>system</scope>和<systemPath>標簽直接引用本地JAR包。這種方案適合臨時性引用,但需要手動維護路徑。
配置步驟
在pom.xml的<dependencies>中添加依賴:
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>my-local-lib</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/my-local-lib-1.0.0.jar</systemPath>
</dependency>
</dependencies>驗證依賴:
- 執(zhí)行
mvn clean package - 檢查
target/lib目錄是否包含該JAR包
注意事項
- 使用
${project.basedir}/開頭確保路徑通用性 system范圍依賴需手動維護路徑,不適合團隊協(xié)作
4.IDE圖形化配置(以IntelliJ IDEA為例)
對于使用IDE開發(fā)的場景,可以通過圖形界面快速添加本地依賴。
配置步驟
打開項目結(jié)構(gòu):File → Project Structure → Modules → Dependencies
添加本地JAR包:
- 點擊
+號選擇JARs or directories - 選中本地JAR包,設(shè)置依賴范圍為
Compile
IDEA會自動生成pom.xml配置:
<dependency>
<groupId>com.example</groupId>
<artifactId>my-local-lib</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/my-local-lib-1.0.0.jar</systemPath>
</dependency>到此這篇關(guān)于Maven項目中使用本地jar包的兩種方法詳解的文章就介紹到這了,更多相關(guān)Maven引入本地JAR包內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java中PreparedStatement和Statement詳細講解
這篇文章主要介紹了java中PreparedStatement和Statement詳細講解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
java 使用JDBC構(gòu)建簡單的數(shù)據(jù)訪問層實例詳解
以下是如何使用JDBC構(gòu)建一個數(shù)據(jù)訪問層,包括數(shù)據(jù)轉(zhuǎn)換(將從數(shù)據(jù)庫中查詢的數(shù)據(jù)封裝到對應(yīng)的對象中……),數(shù)據(jù)庫的建立,以及如何連接到數(shù)據(jù)庫,需要的朋友可以參考下2016-11-11
Spring?Cloud?中使用?Sentinel?實現(xiàn)服務(wù)限流的兩種方式
這篇文章主要介紹了Spring?Cloud?中使用?Sentinel?實現(xiàn)服務(wù)限流的方式,通過示例代碼主要介紹了Sentinel的兩種實現(xiàn)限流的方式,需要的朋友可以參考下2024-03-03
手把手教你在eclipse創(chuàng)建第一個java?web項目并運行
Eclipse是用來做開發(fā)的自由集成開發(fā)環(huán)境,這也是很多java程序員會使用的開發(fā)環(huán)境,所以可以使用eclipse創(chuàng)建javaweb項目,下面這篇文章主要給大家介紹了關(guān)于如何在eclipse創(chuàng)建第一個java?web項目并運行的相關(guān)資料,需要的朋友可以參考下2023-02-02
談?wù)凧ava中整數(shù)類型(short int long)的存儲方式
在java中的整數(shù)類型有四種,分別是byte short in long,本文重點給大家介紹java中的整數(shù)類型(short int long),由于byte只是一個字節(jié)0或1,在此就不多說了,對java中的整數(shù)類型感興趣的朋友一起學(xué)習(xí)吧2015-11-11

