我试图在我的原型中添加额外的变量。具体来说,我的原型包含一个logback.xml文件,我想用我从原型生成的项目的名称填充日志文件名。
我在这里执行答案中的说明-- Passing extra properties to maven archetype:generate,但是它说要在我的原型-metadata.xml中添加一个<requiredProperties>元素。我的原型没有一个原型-metadata.xml,它只有一个archetype.xml (当我从maven-原型-原型生成我的原型时自动生成它)。
在https://maven.apache.org/guides/mini/guide-creating-archetypes.html中,Maven将archetype.xml称为工件描述符。
我谷歌了一下原型-metadata.xml,并找到了这个- http://maven.apache.org/archetype/archetype-models/archetype-descriptor/archetype-descriptor.html。Maven也称它为原型描述符,但它的规范不包含我在archetype.xml中看到的id和资源元素。
archetype.xml和原型-metadata.xml是一回事吗?如果没有,他们的不同目的是什么?我可以在我的<requiredProperties>文件中添加一个archetype.xml元素吗?或者我应该创建一个原型-metadata.xml文件?
发布于 2016-04-02 05:14:38
您应该创建原型描述符(原型-metadata.xml),正如我在前面提到的文章Passing extra properties to maven archetype:generate中所建议的那样。
下面是我正在执行的生成项目的步骤:
mkdir temp
cd temp
git clone git@github.com:jibbyj/appArchetype.git
cd appArchetype
mvn clean install
mkdir run01
cd run01
ls
mvn archetype:generate \
-DarchetypeGroupId=com.company.archetype \
-DarchetypeArtifactId=appArchetype \
-DarchetypeVersion=1.2-SNAPSHOT \
-DarchetypeCatalog=local \
-DinteractiveMode=false \
-DgroupId=com.company \
-DartifactId=test \
-DappName=test完成此流程后,可以在“测试”文件夹中找到生成的项目。
在pom.xml中,artifactId被设置为"test",在src/main/resources/logback.xml中也进行了替换。
发布于 2016-04-11 04:57:22
上面接受的答案的主要优点是使用原型-metadata.xml代替archetype.xml,其中包含一个<requiredProperties>元素,以及一个<filesets>元素,用于我想要包含的资源。在archetype.xml中,它是一个<resources>标记。还提供了一个<packaging>maven-archetype</packaging>原型。
尽管archetype.xml和原型-metadata.xml之间的区别还不完全清楚。假设archetype.xml被否决了?
发布于 2021-03-02 14:43:49
由于这个问题没有答案,所以archetype.xml和原型-metadata.xml之间有什么区别:
正如文档中所指定的那样,https://maven.apache.org/archetype/archetype-common/archetype.html archetype.xml用于模式版本1.0.0。原型-metadata.xml与模式1.1.0一起使用。
archetype.xml:
Maven对旧的原型描述符(即原型1.0.x)的模型。关于原型的元数据存储在位于jar文件的META/maven目录中的archetype.xml文件中。
archetype-metadata.xml:
这是用于描述原型元数据的原型描述符的引用。关于原型的元数据存储在位于jar文件的META/maven目录中的原型-metadata.xml文件中。
https://stackoverflow.com/questions/36342578
复制相似问题