在我的maven原型定义中,我想在用户不输入任何内容时将默认版本设置为0.0.1-SNAPSHOT。但是,当我基于原型创建项目时,我总是被提示输入版本,默认值为1.0-SNAPSHOT。
我该如何正确地做到这一点?
我在archetype.properties文件中定义了一个版本属性,当我编译原型时,它说的是正确的版本,当我更改archetype.properties中的值时,我可以看到控制台输出相应地改变了。
只是在根据原型创建项目时,我会再次收到该版本的提示。
感谢您的帮助和提示!
(如有必要,我会提供代码)
答案 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
分开,而不是由原型生成模块的版本