首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maven中的archetype.xml和原型-metadata.xml有什么区别?

Maven中的archetype.xml和原型-metadata.xml有什么区别?
EN

Stack Overflow用户
提问于 2016-03-31 19:57:35
回答 3查看 2.6K关注 0票数 10

我试图在我的原型中添加额外的变量。具体来说,我的原型包含一个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文件?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-04-02 05:14:38

您应该创建原型描述符(原型-metadata.xml),正如我在前面提到的文章Passing extra properties to maven archetype:generate中所建议的那样。

下面是我正在执行的生成项目的步骤:

代码语言:javascript
复制
    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中也进行了替换。

票数 1
EN

Stack Overflow用户

发布于 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被否决了?

票数 4
EN

Stack Overflow用户

发布于 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文件中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36342578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档