我正在整理一个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中的默认值,那么它会提示我输入一个值,但是没有默认值。
是否可以提供默认值并仍然会出现提示?
答案 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问题。