1

如果项目的版本foo1.0-SNAPSHOT,应该运行命令

 mvn install -Dclassifier=bar

安装foo-1.0-SNAPSHOT-bar.jar在我的本地.m2目录中?我试过这样做,但它会安装foo-1.0-SNAPSHOT.jar并且maven install plugin-Dclassifier并没有提供关于该选项的太多细节。

有没有办法安装(本地)带有分类器的 jar?

4

1 回答 1

2

-Dclassifier参数与目标相关联,该install:install-file目标不是默认构建生命周期的安装阶段执行的目标。相反,它用于以临时命令行方式安装辅助工件。换句话说,它用于在正常运行的 maven 构建的上下文之外将内容粘贴到存储库中。

当您使用 调用默认构建生命周期时mvn install,他的安装阶段会执行[install:install][1]目标。因此,当您执行时mvn install -Dclassifier=bar,您执行了默认的构建生命周期,并且该参数没有用于任何事情。

install:install正如文档中所述,目标是安装以及primary artifactakasecondary工件attached。您的构建生成的 jar 是主要工件。它没有分类器。所有附加的工件都需要第四个 maven 坐标来从主要工件中唯一地识别它们。这个坐标就是分类器。

除非您附加了工件,否则您不需要分类器。附加的工件来自哪里?除了主要工件之外,它们是您的构建产生的东西。因此,它可能是由程序集插件构建的。它可能是另一个包含项目源文件的 jar,等等。分类器由附加辅助工件的机制确定,例如程序集插件。

于 2013-01-18T22:52:56.463 回答