gpt4 book ai didi

java - 使用 requiredProps 和 fileSets 创建具有自定义参数的 Maven 原型(prototype)

转载 作者:太空宇宙 更新时间:2023-11-04 10:43:57 31 4
gpt4 key购买 nike

我需要创建一个新的 maven archetype,其中项目文件包含一些我想为 mvn archetype:generate 提供的自定义参数。只有 -DgroupId-DartifactIdversion 工作正常。但我无法提供例如-Dparam1=value1

我尝试使用requiredPropertiesfileSets,但它不起作用。 我怎样才能实现这一目标?

archetype.xml

<archetype xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype/1.0.0 http://maven.apache.org/xsd/archetype-1.0.0.xsd">
<id>my-archetype</id>

<requiredProperties>
<requiredProperty key="param1">
<defaultValue>lol</defaultValue>
</requiredProperty>
</requiredProperties>

<fileSets>
<fileSet filtered="true" encoding="UTF-8" >
<directory>src/main/</directory>
</fileSet>
</fileSets>

<resources>
<resource>src/main/someFile.txt</resource>
</resources>

</archetype>

src/main/someFile.txt

I am just a txt file, but I need ${param1} value to be here !

我还需要项目的 pom.xml(在 mvn archetype:generate 时生成的)来替换自定义属性。

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>${groupId}</groupId>
<artifactId>${artifactId}-server</artifactId>
<version>${version}</version>
<packaging>pom</packaging>
<name>This name has to contains ${param1} !</name>

// ... all the rest stuff
</project>

最佳答案

根据 archetype descriptor documentation原型(prototype)描述符需要命名为archetype-metadata.xml。该示例显示 archetype.xml

另请注意,初始 XML 元素是 archetype-descriptor,而不仅仅是 archetype

文件还必须位于明确定义的位置,以便插件能够找到它们。

<yourArchetypeProject>
src
main
resources
archetype-resources
<files and directories for project>
META-INF
maven
archetype-metadata.xml

Maven 文档对此肯定会更清楚。我发现this tutorial对我学习的时候很有帮助。

关于java - 使用 requiredProps 和 fileSets 创建具有自定义参数的 Maven 原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48625820/

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