新手问题,我有一个maven原型,我正在使用.properties文件从java项目创建。我希望能够为原型中的变量生成动态值,我不知道该怎么做。目前我正在关注this maven guide,但我似乎无法重现他们所做的事情。特别是在指南的底部,他们用新值替换String值。
这是我正在使用的属性文件:
archetype.groupId=com.mycompany
archetype.artifactId=sample-project
archetype.version=1.0
archetype.languages=java
myParam=something
我检查了我的archetype-metadata.xml文件,我正在尝试加载的属性在那里:
<requiredProperty key="myParam">
<defaultValue>new value here</defaultValue>
</requiredProperty>
但是,我的类都没有加载新值。是否有一个我缺少的步骤替换参数的默认值并将其替换为prop文件中指定的新值?
提前致谢!
答案 0 :(得分:1)
你可能是对的,在创建原型之后和创建项目之前,App.java
或其他类看起来没有任何片段。
假设您不知道如何使用自定义属性,并且您的最终App.java
类需要看起来像这样(只是一个示例):
package my.new.group;
/**
* Hello world!
*
*/
public class App
{
String value = "something";
public static void main( String[] args )
{
System.out.println( "Hello World!" );
}
}
你的archetype.properties
文件看起来就像你粘贴的那样,你的Archetype App.java
类(在安装archetype之前!)需要看起来像这样:
package ${archetype.groupId};
/**
* Hello world!
*
*/
public class ${archetype.artifactId}
{
String value = "${myParam}";
public static void main( String[] args )
{
System.out.println( "Hello World!" );
}
}
如果您准备好了这样的文件,您可以轻松地mvn install
这个原型
然后,如果你创建项目,你将被要求确认属性文件中的值。就这样。应该应用archetype.properties的值