如果项目foo
的版本为1.0-SNAPSHOT
,则应运行命令
mvn install -Dclassifier=bar
在我的本地foo-1.0-SNAPSHOT-bar.jar
目录中安装.m2
?我尝试过这样做,但它会安装foo-1.0-SNAPSHOT.jar
而maven install plugin并未提供有关-Dclassifier
选项的详细信息。
有没有办法安装(本地)带分类器的jar?
答案 0 :(得分:2)
-Dclassifier
参数与install:install-file
目标相关联,这不是默认构建生命周期的安装阶段执行的目标。相反,它用于以ad hoc命令行方式安装辅助工件。换句话说,它是在正常运行的maven构建的上下文之外的存储库中粘贴东西。
当您使用mvn install
调用默认构建生命周期时,安装阶段会执行[install:install][1]
目标。因此,当您执行mvn install -Dclassifier=bar
时,您执行了默认的构建生命周期,并且该参数未用于任何内容。
正如文档中所述,install:install
目标会安装primary artifact
以及secondary
,即attached
个工件。构建生成的jar是主要工件。它没有分类器。所有附加的工件都需要第四个maven坐标来从主工件中唯一地标识它们。该坐标是分类器。
除非您附加了工件,否则不需要分类器。附件是从哪里来的?除了主要工件之外,它们是构建产生的东西。因此,它可能是由程序集插件构建的。它可能是包含项目源文件的另一个jar等。分类器由附加辅助工件的机制决定,例如,程序集插件。