我正在尝试将其他变量添加到我的原型中。具体来说,我的原型包含一个logback.xml文件,我想用日志文件名生成我正在生成的项目名称。
我正在执行此处Passing extra properties to maven archetype:generate答案中的说明,但它说要在我的archetype-metadata.xml中添加<requiredProperties>
元素。我的原型没有archetype-metadata.xml,它只有一个archetype.xml(当我从maven-archetype-archetype生成我的原型时自动生成)。
在https://maven.apache.org/guides/mini/guide-creating-archetypes.html中,Maven将archetype.xml称为工件描述符。
我用google搜索archetype-metadata.xml,找到了这个 - http://maven.apache.org/archetype/archetype-models/archetype-descriptor/archetype-descriptor.html。 Maven也称它为原型描述符,但它的规范不包含我在archetype.xml中看到的id和resources元素。
archetype.xml和archetype-metadata.xml是一回事吗?如果没有,他们的目的是什么?我可以在archetype.xml文件中添加<requiredProperties>
元素吗?或者我应该创建一个archetype-metadata.xml文件?
答案 0 :(得分:1)
您应该按照我在上述帖子Passing extra properties to maven archetype:generate
中的建议创建原型描述符(archetype-metadata.xml)以下是我正在执行以生成项目的步骤:
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 =测试
此流程完成后,在测试文件夹中可以找到生成的项目。在pom.xml中,artifactId设置为“test”,同样在src / main / resources / logback.xml中进行替换。
答案 1 :(得分:1)
因为这个问题没有答案,archetype.xml 和 archetype-metadata.xml 之间的区别是什么:
如文档中所述,https://maven.apache.org/archetype/archetype-common/archetype.html archetype.xml 用于架构版本 1.0.0。 archetype-metadata.xml 与架构版本 1.1.0 一起使用。
archetype.xml:
Maven 的旧原型描述符模型(即原型 1.0.x)。 关于原型的元数据存储在位于其 jar 文件 META-INF/maven 目录下的 archetype.xml 文件中。
原型元数据.xml:
这是用于描述原型元数据的原型描述符的参考。 关于原型的元数据存储在位于其 jar 文件 META-INF/maven 目录下的 archetype-metadata.xml 文件中。