如何在 Maven Custom Archetype (Apache Velocity) 中使用一个模板创建多个文件?
How to create multiple files using one template in Maven Custom Archetype (Apache Velocity)?
我想要实现的是使用下面来自 archetype-metadata.xml 的代码来创建与下面项目一样多的文件,来自 一个模板.
<requiredProperty key="item_1">
<defaultValue>item_1</defaultValue>
</requiredProperty>
.
.
.
<requiredProperty key="item_n">
<defaultValue>item_n</defaultValue>
</requiredProperty>
元数据文件是原型的一部分,由您作为原型开发人员提供,因此您的用户不会编辑该文件。如果需要修改文件内容,可以使用 Apache Velocity。考虑添加一个带有逗号分隔值(或其他适当的字符分隔符)的 属性,其中默认值为单个值:
<requiredProperty key="itemList">
<defaultValue>item_1</defaultValue>
</requiredProperty>
然后,使用 Apache Velocity 遍历 itemList 中提供的值,添加适当的代码块。请参阅 this answer 了解想法。
我不确定是否可以使用这种技术来创建单独的文件,但这是我开始探索的地方。
我不再使用自定义 Maven 原型,因为它无法从一个模板创建多个文件。相反,我使用了 Velocity Engine,我能够完全自由地做我想做的一切。
我想要实现的是使用下面来自 archetype-metadata.xml 的代码来创建与下面项目一样多的文件,来自 一个模板.
<requiredProperty key="item_1">
<defaultValue>item_1</defaultValue>
</requiredProperty>
.
.
.
<requiredProperty key="item_n">
<defaultValue>item_n</defaultValue>
</requiredProperty>
元数据文件是原型的一部分,由您作为原型开发人员提供,因此您的用户不会编辑该文件。如果需要修改文件内容,可以使用 Apache Velocity。考虑添加一个带有逗号分隔值(或其他适当的字符分隔符)的 属性,其中默认值为单个值:
<requiredProperty key="itemList">
<defaultValue>item_1</defaultValue>
</requiredProperty>
然后,使用 Apache Velocity 遍历 itemList 中提供的值,添加适当的代码块。请参阅 this answer 了解想法。
我不确定是否可以使用这种技术来创建单独的文件,但这是我开始探索的地方。
我不再使用自定义 Maven 原型,因为它无法从一个模板创建多个文件。相反,我使用了 Velocity Engine,我能够完全自由地做我想做的一切。