在maven 2的命令行上设置插件的属性

wha*_*ley 29 java command-line maven-2

在maven 2.x中,如何在命令行中设置插件的属性,而不是在pom或settings.xml中的该插件的<configuration>中设置?

例如,如果我正在使用mvn dependency:copy-dependencies(在此处看到),如何在不触及pom或my settings.xml的情况下设置useRepositoryLayout属性?

谢谢!

wha*_*ley 22

答案就在我面前的复制依赖mojo文档中(我甚至链接到它).该属性的文档包括您可以引用它的表达式.

useRepositoryLayout:将每个工件放在与默认存储库相同的目录布局中.例如:/outputDirectory/junit/junit/3.8.1/junit-3.8.1.jar

* Type: boolean
* Since: 2.0-alpha-2
* Required: No
* Expression: ${mdep.useRepositoryLayout}
* Default: false
Run Code Online (Sandbox Code Playgroud)

要从命令行设置此属性,您需要运行

mvn -Dmdep.useRepositoryLayout=true <goals go here>
Run Code Online (Sandbox Code Playgroud)

  • 为了澄清,你需要这样的东西:`mvn -Dmdep.useRepositoryLayout = true依赖:copy-dependencies` (17认同)

bco*_*fer 15

将属性定义为任意属性...而不是标准的maven道具,例如版本.在我的例子中,我定义了一个新属性build.version:

<properties> build.version=unknown </properties>
Run Code Online (Sandbox Code Playgroud)

我使用的属性:

<warName>${build.version}</warName>
Run Code Online (Sandbox Code Playgroud)

我定义了属性:

mvn -P prod -Dbuild.version=app_name-branch_name-build_number package
Run Code Online (Sandbox Code Playgroud)

  • 尽管原始用户的具体问题已得到解答,但此响应回答了帖子标题的一般问题。谢谢! (2认同)

Dav*_*itz 6

通常使用与java系统属性相同的语法设置maven属性.你试过以下这行吗?

mvn -DuseRepositoryLayout=true dependency:copy-dependencies
Run Code Online (Sandbox Code Playgroud)

  • 这仅在插件作者使用表达式注释变量时才有效.它们将显示在插件文档中,如上面的答案所示. (5认同)