我們需要執行以下步驟:
- 首先,打開命令提示符(CMD)或 PowerShell,執行以下命令:
mvn install:install-file ^
-Dfile="你的jar包路徑" ^
-DgroupId="組織ID" ^
-DartifactId="項目ID" ^
-Dversion="版本號" ^
-Dpackaging=jar
例如,如果你的 jar 包在 D:\mylib.jar
,你可以這樣執行:
mvn install:install-file ^
-Dfile="D:\scylla.jar" ^
-DgroupId=com.iflytek ^
-DartifactId=scylla ^
-Dversion=1.0.0 ^
-Dpackaging=jar ^
-DgeneratePom=true ^
-DlocalRepositoryPath="D:\repository"
- 安裝成功后,在你的項目 pom.xml 中添加依賴:
<dependency><groupId>com.example</groupId><artifactId>mylib</artifactId><version>1.0.0</version>
</dependency>
具體步驟:
-
確保已安裝 Maven
- 在命令行輸入
mvn -version
確認 Maven 已安裝 - 如果沒有安裝,需要先下載安裝 Maven
- 在命令行輸入
-
準備參數信息
groupId
: 通常是公司或組織的反向域名(如:com.example)artifactId
: jar 包的名稱(如:mylib)version
: 版本號(如:1.0.0)file
: jar 包的完整路徑
-
執行安裝命令
mvn install:install-file ^ -Dfile="jar包路徑" ^ -DgroupId="組織ID" ^ -DartifactId="項目ID" ^ -Dversion="版本號" ^ -Dpackaging=jar
-
驗證安裝
- 安裝后,jar 包會被復制到 Maven 本地倉庫
- 默認位置:
C:\Users\你的用戶名\.m2\repository
- 或者你指定的 Maven 倉庫位置
-
在項目中使用
- 在項目的 pom.xml 中添加依賴配置
- 刷新 Maven 項目(在 IDE 中右鍵項目 -> Maven -> Reload Project)
如果你需要指定自定義的 Maven 倉庫位置,可以添加 -DlocalRepositoryPath
參數:
mvn install:install-file ^
-Dfile="D:\scylla.jar" ^
-DgroupId=com.iflytek ^
-DartifactId=scylla ^
-Dversion=1.0.0 ^
-Dpackaging=jar ^
-DgeneratePom=true ^
-DlocalRepositoryPath="D:\repository"
- 修改 systemPath 的寫法:
<dependency><groupId>com.iflytek</groupId><artifactId>scylla</artifactId><version>1.0.0</version><scope>system</scope><!-- 使用更可靠的寫法 --><systemPath>${basedir}/src/main/resources/jar/scylla.jar</systemPath>
</dependency>
- 或者使用絕對路徑測試:
<dependency><groupId>com.iflytek</groupId><artifactId>scylla</artifactId><version>1.0.0</version><scope>system</scope><systemPath>D:\code3\CorpKnowledgeBase\spark-knowledge\knowledge-web\src\main\resources\jar\scylla.jar</systemPath>
</dependency>
- 檢查文件位置:
# 創建目錄(如果不存在)
mkdir -p src/main/resources/jar# 確保 jar 包在正確位置
copy scylla.jar src\main\resources\jar\
- 刷新 Maven:
- 右鍵點擊項目
- 選擇 Maven -> Reload Project
- 或者在命令行執行:
mvn clean install -U
- 驗證 Maven 屬性:
你可以添加一個插件來打印實際路徑:
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-antrun-plugin</artifactId><version>3.0.0</version><executions><execution><phase>validate</phase><goals><goal>run</goal></goals><configuration><tasks><echo>project.basedir: ${project.basedir}</echo><echo>System Path: ${project.basedir}/src/main/resources/jar/scylla.jar</echo></tasks></configuration></execution></executions></plugin></plugins>
</build>
- 完整的 pom.xml 示例:
<project><!-- 其他配置 --><properties><lib.dir>${project.basedir}/src/main/resources/jar</lib.dir></properties><dependencies><dependency><groupId>com.iflytek</groupId><artifactId>scylla</artifactId><version>1.0.0</version><scope>system</scope><systemPath>${lib.dir}/scylla.jar</systemPath></dependency><!-- 其他依賴 --></dependencies>
</project>
maven內置屬性:
${project.basedir} <!-- 項目根目錄,即包含pom.xml文件的目錄 -->
${project.build.directory} <!-- 構建目錄,默認為 target -->
${project.version} <!-- 項目版本 -->
${project.groupId} <!-- 項目的groupId -->
${project.artifactId} <!-- 項目的artifactId -->