簡體   English   中英

為什么在本地maven repo上安裝時會從工件中刪除分類器?

[英]Why classifier is removed from artifact while installing on local maven repo?

我有一個實用程序項目,它使用gradle生成JAR工件。 雖然生成JAR神器,我使用的classifier jar任務的屬性解釋這里 我在build.gradle中使用的代碼是:

def artifactClassifier = project.hasProperty('classifier') ? classifier : "dev"
jar {
    classifier = artifactClassifier
}

我可以看到JAR是按照預期生成的( myutils-1.0-test.jar ),同時我按照gradle構建運行。

$ gradle clean build -Pclassifier=test

現在,我嘗試使用以下命令將此工件安裝到我的本地M2存儲庫:

$ mvn:install install-file -Dfile=/path/to/myutils-1.0-test.jar -DgroupId=my.group -DartifactId=myutils -Dversion=1.0 -Dclassifiers=test

這個安裝很成功,但是當我檢查了我的M2 ~/.m2/repository/my/group/myutils/1.0/myutils-1.0.jar ,我看到JAR文件位於: ~/.m2/repository/my/group/myutils/1.0/myutils-1.0.jar 已安裝的工件名稱中缺少分類器值test 然后,我嘗試將其添加為依賴項:

<dependency>
  <groupId>my.group</groupId>
  <artifactId>myutils</artifactId>
  <version>1.0</version>
  <classifier>test</classifier>
</dependency>

但是,maven無法解決它。 刪除classifier標簽后,maven可以解決依賴關系。 Gradle也發生了同樣的事情。 當我添加了以下內容時,Gradle無法解決依賴關系(我試過沒有@jar ,這也沒有用。

ext {
  myutils.version = "1.0"
}
compile "my.group:myutils:${myutils_version}:test@jar"

而在刪除:test@jar讓Gradle解析依賴關系。

我正在使用Gradle v2.3和Maven v3.3.1

我錯過了什么嗎? 有人能幫助我嗎?

嘗試使用-Dclassifier (不帶s)作為mvn install:install-file

即:

$ mvn install:install-file -Dfile=/path/to/myutils-1.0-test.jar -DgroupId=my.group -DartifactId=myutils -Dversion=1.0 -Dclassifier=test

暫無
暫無

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

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