【问题标题】:Passing extra properties to maven archetype:generate将额外的属性传递给 Maven 原型:生成
【发布时间】:2011-03-28 06:24:15
【问题描述】:

我为自定义项目设置创建了一个 Maven 原型,它运行良好,但我想知道是否可以传递额外的参数,以便我可以做一些更有趣的模板。我尝试了类似的东西

mvn archetype:generate -DarchetypeCatalog=local -DdbHost=localhost

然后放

...
<option name="db.host.config.option" value="${dbHost}" />
...

在我的模板中,但这似乎不起作用。有没有办法用原型做到这一点?

【问题讨论】:

    标签: maven-2 maven-archetype


    【解决方案1】:

    您只需在META-INF/maven/archetype-metadata.xml 中将dbHost 提及为requiredProperty

    <archetype-descriptor name="basic">
        <requiredProperties>
            <requiredProperty key="dbHost"/>
        </requiredProperties>
    </archetype-descriptor>
    

    【讨论】:

    • 谢谢,您能详细说明一下吗?我不确定我对语法是否足够熟悉。
    • 当然。在您的原型项目中,您必须创建一个文件夹 project/META-INF/maven。在该文件夹中,您必须创建一个名为archetype-metadata.xml 的文件。在该文件中,您应该为您想要的每个配置参数添加 requiredProperty 标记。你可以在这里找到更多细节maven.apache.org/archetype/maven-archetype-plugin/specification/…
    • 我已经尝试过了,但是在这是否应该放入 archetype-metadata.xml (如您的建议)或将其放入 archetype.xml 以及原型的一些内容之间遇到了混淆。如果我把它放在archetype-metadata.xml 中,xml 似乎不起作用,如果我尝试将两个文件放在我的原型中,则会遇到问题。见stackoverflow.com/questions/36342578/…
    【解决方案2】:

    虽然这个问题比较老,但我会提供我自己对 Maven 3.04 的体验

    生成项目原型(create-from-project)时,您可以将属性文件作为参数传递。传入的每个属性 (key=value) 将依次在 archetype-metadata.xml 文件中生成一个 requiredProperty,其中“value”作为其默认值。
    另一方面,原型生成过程将在我们的文本文件中查找字符串“value”并将其替换为“${key}”(即 dbHost=db.host.config.option 将查找“db .host.config.option" 并将其替换为 ${dbHost})

    使用最终项目生成的原型(使用 generate)我们有机会使用 -Dkey 为该参数提供一个值=。所以不需要手动编辑archetype-metadata.xml文件。

    【讨论】:

    • 您能否发布一个示例,说明如何将属性文件作为参数传递给mvn archetype:create-from-project
    • 如果你在根文件夹下创建一个默认名称(archetype.properties)的文件,不需要指定任何属性,它会被自动拾取。
    • 我刚刚发现:如果您以交互模式 (-Dinteractive=true) 运行原型生成,它会询问您是否要提供其他属性,您可以即时定义它们。跨度>
    【解决方案3】:

    我们还需要在命令提示符中传递属性值,并在 archetype-metadat.xml 中对其进行维护,但此处名称不应包含“。”符号,因为它不允许您更新值。

    Maven 中的限制是不要使用 prod.ex.version 这样的名称 你可以使用 prod-ex-version

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-18
      • 2021-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多