使用默认值询问maven原型属性

时间:2010-10-09 00:27:26

标签: maven-2 maven-archetype

我正在整理一个maven原型,它有一堆自定义属性,用于过滤各种原型资源。我在archetype-metadata.xml中指定了默认值,例如

<requiredProperties>
  <requiredProperty key="application-name">
    <defaultValue>Some Application</defaultValue>
  </requiredProperty>>  
</requiredProperties>

但是当我尝试使用原型创建项目时,它不允许我以交互方式更改这些项目。例如,它要求默认版本如下

Define value for property 'version': 1.0-SNAPSHOT: 

允许输入版本,但如果未输入任何内容,则默认为1.0-SNAPSHOT。对于我的自定义属性,它仅在创建新项目之前显示它们

[INFO] Using property: application-name = Some Application

如果我省略了archetype-metadata.xml中的默认值,那么它会提示我输入一个值,但是没有默认值。

是否可以提供默认值并仍然会出现提示?

5 个答案:

答案 0 :(得分:8)

请查找提交设置的最终问题。就我而言,最后一个问题是:

:
Confirm properties configuration:
groupId: ....
 Y: :

如果我输入 n ,则所有属性都将使用我的默认值archetype-metadata.xml重新询问。

这是我的控制台部分:

Choose archetype:
1: file:///C:\Aktentasche\_daten\m3 -> maven-dsl-project-archet...
Choose a number: : 1
Downloading: file:///C:\Aktentasche\_daten\m3/net/sf/maven/plug...
data.xml
[INFO] Using property: groupId = net.sf.maven.plugins
[INFO] Using property: artifactId = dslexample
[INFO] Using property: version = 1.0.0-SNAPSHOT
[INFO] Using property: package = net.sf.maven.plugins
[INFO] Using property: eclipse_platform = helios
[INFO] Using property: tycho_version = 0.8.0
Confirm properties configuration:
groupId: net.sf.maven.plugins
artifactId: dslexample
version: 1.0.0-SNAPSHOT
package: net.sf.maven.plugins
eclipse_platform: helios
tycho_version: 0.8.0
 Y: :

在这里,我必须输入带有默认值的交互式对话框的 n

答案 1 :(得分:7)

简而言之,不,这是不可能的。 这有一个JIRA问题。 如果您遇到问题,可以投票支持。

答案 2 :(得分:1)

我知道这远非理想,但如果您为所有requiredProperty(包括groupId,artifactId,版本和包)提供默认值,您将获得简历,然后输入 n 你将实现你的目标

答案 3 :(得分:0)

我在Maven邮件列表上提出了这个问题,但没有得到答复。作为此时的解决方法,系统属性可用于在运行原型时在命令行覆盖它们

e.g. -Dapplication-name="Some Application"

答案 4 :(得分:-2)

您是否尝试从结尾requiredProperty上取第二个克拉?

</requiredProperty>>更改为</requiredProperty>

看起来可能是格式错误的XML问题。