12

我想创建一个用户可以提供的原型artifactId。然后我想拿这个artifactId并创建两个文件。

这是一个例子。

artifactId= box

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

创建copy-box.txt非常容易。但如何Box.javaB资本创造?

4

2 回答 2

2

我查看了在原型资源的文件名中创建替换的代码(可以在此处找到)。似乎参数的值是从上下文中获取的,这意味着它们没有被评估。在我看来,目前不可能(可悲,但真实)直接在文件名中使用评估机制。

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

于 2014-06-30T16:26:25.017 回答
2

Maven 原型中有一个错误。请参阅错误报告ARCHETYPE-406ARCHETYPE-397

修复后,可以requiredProperty为您的案例定义和使用自定义。

在 archetype-metadata.xml 添加

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

不要忘记添加classPrefixarchetype.properties

于 2014-02-07T17:16:39.760 回答