我想创建一个原型,用户可以在其中提供artifactId
。然后,我要使用此artifactId
并创建两个文件。
这里是一个例子。
artifactId= box
FILE 1: copy-box.txt
FILE 2 : Box.java
创建copy-box.txt
非常容易。但是如何用Box.java
资本创建B
?
我浏览了在原型资源的文件名中创建替换的代码(可以在here中找到)。看来参数的值是从上下文中获取的,这意味着它们没有被求值。我认为,目前暂时不能(很遗憾,但确实如此)直接在文件名中使用评估机制。
但是,通过简单地实现FilesetArchetypeGenerator
接口,可以为原型生成做出很好的贡献。
maven原型中存在错误。请参阅错误报告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