自定义 Maven 原型:未使用版本的默认值

custom maven archetype: default value for version not used

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

如何正确执行此操作?

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

刚基于原型创建项目时,系统再次提示我输入版本。

感谢您的帮助和提示!

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

您可以在原型元数据中定义自定义属性。看看 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 命令引用具有上述配置的原型时,您将在控制台输出中看到:

[INFO] Using property: version = 0.0.1-SNAPSHOT

或者,如果您 运行 带有参数 -Dversion=FOOmvn archetype:generate 命令,那么您将在控制台输出中看到:

[INFO] Using property: version = FOO

注意:当然,此版本与 archetypeVersion 分开,archetypeVersion 定义原型本身的版本,而不是 生产的 模块的版本原型。