Java 为什么在本地maven repo上安装时从工件中删除分类器?
我有一个实用程序项目,它使用gradle生成JAR工件。在生成JAR工件时,我使用Java 为什么在本地maven repo上安装时从工件中删除分类器?,java,maven,gradle,Java,Maven,Gradle,我有一个实用程序项目,它使用gradle生成JAR工件。在生成JAR工件时,我使用classifier属性JAR任务解释。我在build.gradle中使用的代码是: def artifactClassifier = project.hasProperty('classifier') ? classifier : "dev" jar { classifier = artifactClassifier } 我可以看到JAR是按预期生成的(myutils-1.0-test.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 repo:
$ mvn:install install-file -Dfile=/path/to/myutils-1.0-test.jar -DgroupId=my.group -DartifactId=myutils -Dversion=1.0 -Dclassifiers=test
这个安装是成功的,但是当我检查我的M2 repo时,我看到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>
而在删除时:test@jar
让Gradle解决依赖关系
我正在使用Gradlev2.3
和Mavenv3.3.1
我遗漏了什么吗?有人能帮我吗?尝试使用
-dclassizer
(不带s)作为mvn安装:安装文件的参数
i、 e:
@K Erlandson,感谢您的快速回复,它使用了-dclassizer
而不是复数形式。但是,maven文档几乎没有误导性(他们都有分类器
和分类器
@Niranjan您读错了文档。这是部署插件的文档。检查这里:安装插件。@K Erlandson,这是一个好观点;我的坏观点,我错过了。也就是说,从我们的Jenkins那里,我们使用maven部署插件
上传到我们的内部nexus回购。我想我必须使用相同的-dclassizer
,而不是它的复数形式,这应该会起作用。再次感谢。
ext {
myutils.version = "1.0"
}
compile "my.group:myutils:${myutils_version}:test@jar"
$ mvn install:install-file -Dfile=/path/to/myutils-1.0-test.jar -DgroupId=my.group -DartifactId=myutils -Dversion=1.0 -Dclassifier=test