在我的 Maven 原型(prototype)定义中,我想在用户未输入任何内容时将默认版本设置为 0.0.1-SNAPSHOT。但是,当我基于原型(prototype)创建项目时,系统总是提示我输入版本,默认为 1.0-SNAPSHOT。
如何正确执行此操作?
我在 archetype.properties 文件中定义了一个版本属性,当我编译原型(prototype)时,它显示了正确的版本,当我更改 archetype.properties 中的值时,我可以看到控制台输出相应地发生变化。
刚基于原型(prototype)创建项目时,系统再次提示我输入版本。
感谢您的帮助和提示!
(如有必要,我会提供代码)
最佳答案
您可以在原型(prototype)元数据中定义自定义属性。查看 META-INF/maven
中的 archetype-metadata.xml
。例如:
my-archetype
|
+ src
|
+ main
|
+ resources
|
+ META-INF
|
+ maven
|
+ archetype-metadata.xml
version
的自定义属性如下所示:
<?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>
更多详情请参见 the docs .
当您运行 mvn archetype:generate
命令并引用具有上述配置的原型(prototype)时,您将在控制台输出中看到:
[INFO] Using property: version = 0.0.1-SNAPSHOT
或者,如果您使用参数 -Dversion=FOO
运行 mvn archetype:generate
命令,那么您将在控制台输出中看到:
[INFO] Using property: version = FOO
注意:当然,此版本与 archetypeVersion
分开,archetypeVersion
定义原型(prototype)本身的版本,而不是原型(prototype)生成 的模块的版本。
关于java - 自定义 Maven 原型(prototype) : default value for version not used,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45975627/