创建Maven ArcheType。设置文件名

时间:2013-09-12 19:47:03

标签: java maven maven-archetype

我想创建一个Archetype,用户可以在其中提供artifactId。然后我想拿这个artifactId并创建两个文件。这是一个例子。

artifactId= box

FILE 1: copy-box.txt
FILE 2 : Box.java

创建copy-box.txt非常简单。但是如何使用B资本创建Box.java。

2 个答案:

答案 0 :(得分:2)

我查看了在原型资源的文件名中创建替换的代码。 (可以找到here)。在我看来,参数的值取自上下文,这意味着它们不被评估。在我看来,目前在文件名中直接使用评估机制是不可能的(可悲的,但也是正确的)。

但是,通过简单地实现FilesetArchetypeGenerator接口,可以对原型生成做出很好的贡献。

答案 1 :(得分:1)

maven archetype中存在一个错误。查看错误报告ARCHETYPE-406ARCHETYPE-397。 修复后,可以为您的案例定义和使用自定义requiredProperty。 在archetype-metadata.xml中添加

<requiredProperties>
  <requiredProperty key="classPrefix" >
    <defaultValue>
      ${artifactId.substring(0,1).toUpperCase()}${artifactId.substring(1)}
    </defaultValue>
  </requiredProperty>
</requiredProperties>

不要忘记将classPrefix添加到archetype.properties