簡體   English   中英

Maven:如何將依賴的工件提取(而不是解壓縮)到本地存儲庫中的單獨文件夾中

[英]Maven: How to extract (not unpack) dependent artifacts to a separate folder from local repository

場景:我需要為另一個無法通過網絡訪問Maven公共存儲庫的開發人員准備一個可用且簡潔的本地存儲庫。 但是我計算機上的本地存儲庫約為20G,其中包含與項目無關的大部分工件。

AFAIK我可以使用mvn dependency:resolve將依賴項僅下載到新的本地存儲庫位置,但是網絡流量有限,我不想浪費時間等待下載完成。 我用dependency:copy-dependencies歌搜索了一段時間,然后嘗試了dependency:copy-dependencies但是它僅復制jar文件,而不包含工件中的pom.xml文件和其他元文件。

我知道這種解決方法有點違背行家精神,但有時我們所有人都需要脫機工作。

如果您有所有jar的列表,則可以提取它們,暫時將其mv .m2安裝,並按照https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html進行安裝,給您的同事您當地的.m2,然后重命名您的舊.m2。

盡管很少見,但有時您會需要將第3方JAR放到本地存儲庫中以在構建中使用,因為它們在Maven Central等任何公共存儲庫中都不存在。 必須將JAR放置在本地存儲庫中的正確位置,以便Apache Maven可以正確拾取JAR。 為了使此操作更容易且不易出錯,我們在maven-install-plugin中提供了一個目標,該目標應使此工作相對簡單。 要在本地存儲庫中安裝JAR,請使用以下命令:

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \
    -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>

如果還有pom文件,則可以使用以下命令進行安裝:

mvn install:install-file -Dfile=<path-to-file> -DpomFile=<path-to-pomfile>

使用2.5版的maven-install-plugin會變得更好。 如果JAR是由Apache Maven構建的,則它將在META-INF目錄的子文件夾中包含pom.xml,默認情況下將讀取該子文件夾。 在這種情況下,您需要做的只是:

mvn install:install-file -Dfile=<path-to-file>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM