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

时间:2009-04-15 17:03:37

标签: java maven-2 command-line

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

例如,如果我使用mvn dependency:copy-dependenciesseen here),如何在不触及pom或my settings.xml的情况下设置useRepositoryLayout属性?

谢谢!

4 个答案:

答案 0 :(得分:19)

在复制依赖性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

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

mvn -Dmdep.useRepositoryLayout=true <goals go here>

答案 1 :(得分:14)

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

<properties> build.version=unknown </properties>

我使用属性:

<warName>${build.version}</warName>

我定义了属性:

mvn -P prod -Dbuild.version=app_name-branch_name-build_number package

答案 2 :(得分:6)

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

mvn -DuseRepositoryLayout=true dependency:copy-dependencies

答案 3 :(得分:0)

这里的其他答案对我来说并不清楚。这是我理解的方式:

如果插件代码为其参数使用系统属性,则可以在命令行上定义该值。

您可以通过3种不同的方式在插件代码中实现此目的:

@parameter expression="${aSystemProperty}" 
@parameter default-value="${anExpression}"
@parameter property="aSystemProperty"

如果在特定属性的插件代码中使用了这些方法中的任何一个或组合,则可以在命令行上为插件参数指定值。以上代码取自maven docs here

如果您使用带有上述代码的插件,则可以使用以下命令为您的属性指定值:

mvn -DaSystemProperty=my-value <goal-here>