【问题标题】:How to generate dynamic file in maven archetype?如何在 Maven 原型中生成动态文件?
【发布时间】:2012-08-30 09:22:09
【问题描述】:

我想将参数传递给archetype-resources>src>主文件夹中的文件。 所以我在 archetype-metadata.xml 中声明了 required 属性为

<requiredProperties>
    <requiredProperty key="myParam">
      <defaultValue>default-value</defaultValue>
    </requiredProperty>
  </requiredProperties>

并在原型文件中使用了 ${myParam},但它的值没有被替换。为什么?

如果我在原型项目的 pom.xml 中使用自定义值,则生成的项目会将 ${myParam} 的值替换为 myValue。它工作正常,但同样不适用于原型文件夹中的文件。为什么?

【问题讨论】:

    标签: maven archetypes maven-archetype


    【解决方案1】:

    您需要告诉 Velocity 引擎您的文件应该用作 Velocity 模板(这样它实际上会替换它在文件中找到的任何属性)。为此,您可以扩展 archetype-metadata.xml 文件并定义 fileSet

    我不确定您的确切文件夹结构以及相关文件的名称是什么,但这些内容应该可以工作:

    <?xml version="1.0" encoding="UTF-8"?>
    <archetype-descriptor name="basic">
        <requiredProperties>
            <requiredProperty key="myParam">
                <defaultValue>default-value</defaultValue>
            </requiredProperty>
        </requiredProperties>
        <fileSets>
            <fileSet filtered="true" packaged="false">
                <directory>src/main</directory>
                <includes>
                    <include>**/*</include>
                </includes>
            </fileSet>
        </fileSets>
    </archetype-descriptor>
    

    基本上上面是告诉它包含src/main下的所有文件,重要的部分是filtered=true,这将导致所有属性被替换。

    【讨论】:

      猜你喜欢
      • 2011-07-23
      • 2013-02-23
      • 1970-01-01
      • 2013-02-02
      • 2014-10-25
      • 1970-01-01
      • 1970-01-01
      • 2019-07-06
      • 2012-05-21
      相关资源
      最近更新 更多