Maven:通过属性或yaml文件传递prototype-metadata.xml中的requiredProperty值



我想通过原型元数据使用自定义属性来生成maven原型。xml的requiredProperty-

<requiredProperties>
<requiredProperty key="proxy-name">
<defaultValue>${proxy.name}</defaultValue>
</requiredProperty>
<requiredProperty key="proxy-desc">
<defaultValue>${proxy.description}</defaultValue>
</requiredProperty>
</requiredProperties>

然而,我的要求是使用属性文件或yaml文件中提供的key:value对初始化这些requiredProperty值,这样我就可以在archetype-resources下的自定义项目结构的pom.xml中注入这些值。

<properties>
<proxy-name>${proxy.name}</proxy-name>
<proxy-desc>>${proxy.description}</proxy-desc>
</properties>

我不想通过命令行或提供默认值来为这些属性提供值。我希望在运行mvn archetype:generate命令时,基于读取外部属性文件来动态初始化这些属性值

这可能吗?如果这个问题看起来太模糊或太初级,我会提前道歉。这是我第一次处理自定义maven原型。

p.S-我尝试过使用yaml属性maven插件,但是这些值仍然没有填充在原型资源pom.xml中,它通常在通过命令行初始化属性值时获取值。

因此,为了回答我自己的问题并帮助任何遇到同样问题的人:

我所做的是在META-INF/maven中还包括一个archetype.xml,它接受资源属性文件名,用于替换archetype-metadata.xml中的自定义值。以下是archetype.xml的外观:

<?xml version="1.0" encoding="UTF-8"?>
<archetype>
<id>quickstart-archetype</id>
<sources/>
<resources>
<resource>archetype.properties</resource>
</resources>
</archetype>

通过这种方式,yaml-maven-properties插件读取yaml文件,并在src/main/resources文件夹中写入archetype.properties文件,该文件夹还包含用于原型生成的archetype-resources文件夹结构。

请告诉我,以防有人需要更多关于我是如何做到这一点的澄清。

最新更新