gpt4 book ai didi

maven - 如何在 Maven 原型(prototype)中生成动态文件?

转载 作者:行者123 更新时间:2023-12-02 05:32:32 24 4
gpt4 key购买 nike

我想将参数传递给 archetype-resources>src>main 文件夹中的文件。所以我在 archetype-metadata.xml 中将 required 属性声明为

<requiredProperties>
<requiredProperty key="myParam">
<defaultValue>default-value</defaultValue>
</requiredProperty>
</requiredProperties>

并在原型(prototype)文件中使用了 ${myParam} ,但其值未被替换。为什么?

如果我在原型(prototype)项目的 pom.xml 中使用自定义值,则生成的项目会将 ${myParam} 的值替换为 myValue。它工作正常但同样不适用于原型(prototype)文件夹中的文件。为什么?

最佳答案

您需要告诉 Velocity 引擎您的文件应该用作 Velocity 模板(以便它实际上会替换它在文件中找到的任何属性)。为此,您可以扩展 archetype-metadata.xml 文件并定义一个 fileSet .

我不确定您的确切文件夹结构以及相关文件的名称是什么,但按照这些思路应该可以工作:

<?xml version="1.0" encoding="UTF-8"?>
<archetype-descriptor name="basic">
<requiredProperties>
<requiredProperty key="myParam">
<defaultValue>default-value</defaultValue>
</requiredProperty>
</requiredProperties>
<fileSets>
<fileSet filtered="true" packaged="false">
<directory>src/main</directory>
<includes>
<include>**/*</include>
</includes>
</fileSet>
</fileSets>
</archetype-descriptor>

基本上上面的内容是告诉它包含 src/main 下的所有文件,重要的部分是 filtered=true 这将导致所有属性被替换。

关于maven - 如何在 Maven 原型(prototype)中生成动态文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12193694/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com