custom maven archetype:未使用版本的默认值

时间:2017-08-31 07:25:46

标签: java maven maven-archetype

在我的maven原型定义中,我想在用户不输入任何内容时将默认版本设置为0.0.1-SNAPSHOT。但是,当我基于原型创建项目时,我总是被提示输入版本,默认值为1.0-SNAPSHOT。

我该如何正确地做到这一点?

我在archetype.properties文件中定义了一个版本属性,当我编译原型时,它说的是正确的版本,当我更改archetype.properties中的值时,我可以看到控制台输出相应地改变了。

只是在根据原型创建项目时,我会再次收到该版本的提示。

感谢您的帮助和提示!

(如有必要,我会提供代码)

1 个答案:

答案 0 :(得分:5)

您可以在原型元数据中定义自定义属性。请查看orphanRemoval=true中的archetype-metadata.xml。例如:

META-INF/maven

my-archetype | + src | + main | + resources | + META-INF | + maven | + archetype-metadata.xml 的自定义属性如下所示:

version

the docs中的更多详情。

当您运行引用具有上述配置的原型的<?xml version="1.0" encoding="UTF-8"?> <archetype-descriptor name="basic"> <requiredProperties> <requiredProperty key="version"> <defaultValue>0.0.1-SNAPSHOT</defaultValue> </requiredProperty> </requiredProperties> </archetype-descriptor> 命令时,您将在控制台输出中看到此信息:

mvn archetype:generate

或者,如果您使用参数[INFO] Using property: version = 0.0.1-SNAPSHOT 运行mvn archetype:generate命令,那么您将在控制台输出中看到此信息:

-Dversion=FOO

注意:当然,这个版本与定义原型本身版本的[INFO] Using property: version = FOO 分开,而不是由原型生成模块的版本