我想创建一个Archetype,用户可以在其中提供artifactId。然后我想拿这个artifactId并创建两个文件。这是一个例子。
artifactId= box
FILE 1: copy-box.txt
FILE 2 : Box.java
创建copy-box.txt非常简单。但是如何使用B资本创建Box.java。
答案 0 :(得分:2)
我查看了在原型资源的文件名中创建替换的代码。 (可以找到here)。在我看来,参数的值取自上下文,这意味着它们不被评估。在我看来,目前在文件名中直接使用评估机制是不可能的(可悲的,但也是正确的)。
但是,通过简单地实现FilesetArchetypeGenerator接口,可以对原型生成做出很好的贡献。
答案 1 :(得分:1)
maven archetype中存在一个错误。查看错误报告ARCHETYPE-406和ARCHETYPE-397。 修复后,可以为您的案例定义和使用自定义requiredProperty。 在archetype-metadata.xml中添加
<requiredProperties>
<requiredProperty key="classPrefix" >
<defaultValue>
${artifactId.substring(0,1).toUpperCase()}${artifactId.substring(1)}
</defaultValue>
</requiredProperty>
</requiredProperties>
不要忘记将classPrefix添加到archetype.properties