Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用自定义属性生成Maven原型_Maven_Maven 3_Maven Archetype - Fatal编程技术网

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

使用自定义属性生成Maven原型,maven,maven-3,maven-archetype,Maven,Maven 3,Maven Archetype,这里的新手问题是,我有一个maven原型,我正在使用.properties文件从java项目创建它。我希望能够为原型中的变量生成动态值,但我不知道如何做到这一点。目前我正在跟踪,但我似乎无法重现他们所做的事情。特别是在指南的底部,它们用新值替换字符串值 以下是我正在使用的属性文件: archetype.groupId=com.mycompany archetype.artifactId=sample-project archetype.version=1.0 archetype.languag

这里的新手问题是,我有一个maven原型,我正在使用.properties文件从java项目创建它。我希望能够为原型中的变量生成动态值,但我不知道如何做到这一点。目前我正在跟踪,但我似乎无法重现他们所做的事情。特别是在指南的底部,它们用新值替换字符串值

以下是我正在使用的属性文件:

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文件中指定的新值替换它


提前谢谢

您可能是对的,在创建原型之后和创建项目之前,
App.java
或其他类的外观没有任何片段

假设您不知道如何使用自定义属性,并且最终的
App.java
类需要如下所示(只是一个示例):

您粘贴的
archetype.properties
文件如下所示,您的原型
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安装
这个原型

然后,如果您创建项目,您将被要求确认属性文件中的值。就这些。应应用archetype.properties中的值

package ${archetype.groupId};

/**
 * Hello world!
 *
 */
public class ${archetype.artifactId}
{
    String value = "${myParam}";
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
    }
}