【发布时间】:2013-09-12 19:47:02
【问题描述】:
我想创建一个原型,用户可以在其中提供artifactId。然后我想用这个artifactId 并创建两个文件。
这是一个例子。
artifactId= box
FILE 1: copy-box.txt
FILE 2 : Box.java
创建copy-box.txt 非常简单。但是如何用B大写创建Box.java呢?
【问题讨论】:
标签: java maven maven-archetype
我想创建一个原型,用户可以在其中提供artifactId。然后我想用这个artifactId 并创建两个文件。
这是一个例子。
artifactId= box
FILE 1: copy-box.txt
FILE 2 : Box.java
创建copy-box.txt 非常简单。但是如何用B大写创建Box.java呢?
【问题讨论】:
标签: java maven maven-archetype
我查看了在原型资源的文件名中创建替换的代码(可以找到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
【讨论】: