java - 自定义 Maven 原型(prototype) : default value for version not used

标签 java maven maven-archetype

在我的 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/

相关文章:

javascript - 使用 Selenium Webdriver 的 ExtJS 测试自动化

Java `final` 类和模拟

java - 将主项目jar添加到项目根文件夹中

maven - 从 Eclipse IDE 在 Tomcat8 中部署 Maven 项目

java - 如何共享 Maven 原型(prototype)

java - 使用枢轴元素对数组进行分区的算法

java - 为什么 Riak 将 "inavailable channel closed"消息记录为 ERROR

java - 从行项目列表中提取值

java - 在同一目录中使用 Maven Archetype 生成

maven - 为原型(prototype) :generate on command line 指定原型(prototype)