我想通过archetype-metadata.xml的requiredProperty-
使用自定义属性来生成Maven原型。<requiredProperties>
<requiredProperty key="proxy-name">
<defaultValue>${proxy.name}</defaultValue>
</requiredProperty>
<requiredProperty key="proxy-desc">
<defaultValue>${proxy.description}</defaultValue>
</requiredProperty>
</requiredProperties>
但是,我的要求是使用属性文件或yaml文件中提供的 key:value 对初始化这些requiredProperty
值,以便可以将这些值注入{ pom.xml
下的{1}}自定义项目结构。
archetype-resources
我不想通过命令行或通过提供默认值来为这些属性提供值。我希望在运行 <properties>
<proxy-name>${proxy.name}</proxy-name>
<proxy-desc>>${proxy.description}</proxy-desc>
</properties>
命令时基于读取外部属性文件来动态初始化这些属性值。
这甚至可能吗?如果问题似乎太模糊或太简单,我谨此致歉。这是我第一次处理自定义Maven原型。
P.S-我尝试使用yaml-properties-maven-plugin,但是这些值仍未填充在原型资源pom.xml中,该属性通常在通过命令行初始化属性值时采用值。
答案 0 :(得分:0)
因此,回答我自己的问题并帮助遇到相同问题的任何人:
我所做的是,在archetype.xml
中还包含一个META-INF/maven
,该文件采用资源属性文件名来替代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文件,并将archetype.properties
文件写入src/main/resources
文件夹中,该文件夹还包含archetype-resources
文件夹原型生成的结构。
如果有人需要进一步说明我如何实现这一目标,请告诉我。