代码之家  ›  专栏  ›  技术社区  ›  whaley

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

  •  24
  • whaley  · 技术社区  · 15 年前

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

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

    谢谢!

    4 回复  |  直到 6 年前
        1
  •  19
  •   Sergei Tachenov    8 年前

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

    用户位置:每个位置 同一目录布局中的项目 作为默认存储库。例子: /输出目录/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>
    
        2
  •  13
  •   bcolfer    14 年前

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

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

    我使用财产:

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

    我定义属性:

    mvn -P prod -Dbuild.version=app_name-branch_name-build_number package
    
        3
  •  6
  •   David Rabinowitz    15 年前

    通常,使用与Java系统属性相同的语法设置Maven属性。你试过下面这句话吗?

    mvn -DuseRepositoryLayout=true dependency:copy-dependencies
    
        4
  •  0
  •   Freddie    6 年前

    我不清楚这里的其他答案。我就是这样理解的:

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

    在插件代码中有三种不同的方法可以实现这一点:

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

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

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

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