使用自定义属性生成Maven原型

时间:2014-08-26 00:13:47

标签: maven maven-3 maven-archetype

新手问题,我有一个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文件中指定的新值?

提前致谢!

1 个答案:

答案 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的值