【发布时间】:2010-10-19 15:48:20
【问题描述】:
在 maven 2.x 中,如何在命令行而不是在 pom 或 settings.xml 中该插件的
例如,如果我使用的是mvn dependency:copy-dependencies(seen here),如何在不触及 pom 或我的 settings.xml 的情况下设置 useRepositoryLayout 属性?
谢谢!
【问题讨论】:
标签: java maven-2 command-line
在 maven 2.x 中,如何在命令行而不是在 pom 或 settings.xml 中该插件的
例如,如果我使用的是mvn dependency:copy-dependencies(seen here),如何在不触及 pom 或我的 settings.xml 的情况下设置 useRepositoryLayout 属性?
谢谢!
【问题讨论】:
标签: java maven-2 command-line
在 copy-dependencies 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>
【讨论】:
mvn -Dmdep.useRepositoryLayout=true dependency:copy-dependencies
通常您使用与 java 系统属性相同的语法来设置 maven 属性。您是否尝试过以下行?
mvn -DuseRepositoryLayout=true dependency:copy-dependencies
【讨论】:
将属性定义为任意属性...而不是标准的 maven 道具,例如版本。在我的例子中,我定义了一个新的属性 build.version:
<properties> build.version=unknown </properties>
我使用该属性:
<warName>${build.version}</warName>
我定义属性:
mvn -P prod -Dbuild.version=app_name-branch_name-build_number package
【讨论】:
我不清楚这里的其他答案。我是这样理解的:
如果插件代码使用系统属性作为其参数,那么您可以在命令行中定义该值。
您可以在插件代码中通过 3 种不同的方式完成此操作:
@parameter expression="${aSystemProperty}"
@parameter default-value="${anExpression}"
@parameter property="aSystemProperty"
如果在插件代码中为特定属性使用了这些方法中的任何一种或组合,那么您可以在命令行上为插件参数指定一个值。以上代码取自maven docs here。
如果您使用带有上述代码的插件,您可以使用以下命令为您的属性指定一个值:
mvn -DaSystemProperty=my-value <goal-here>
【讨论】: