可以在命令行或通过m2eclipse的New Maven Project向导运行。 通过对Maven原型的支持,其他IDE(例如NetBeans,IntelliJ等)也可以使用它。
开始使用Maven原型最困难的是现有的相对较差的文档。 除了最基本的用途( archetype:create-from-project )之外,它可以在已有的maven项目或父项目的情况下创建原型,没有什么可做的。 因此,这里有一些提示。
目录/文件名替换
在模板生成过程中,有些情况下您要输出不同的模块名称,有时还要输出不同的文件名。 为此,请使用变量名重命名您要替换的目录或文件部分。 例如,如果您将__rootArtifactId__指定为目录名或文件名的一部分,则将替换在mvn archetype:generate期间输入为artifactId的内容。 您可以对自定义属性执行相同的操作。 例子
内置属性
在替换过程中可以使用一些内置属性。 这些是:
- groupId
- artifactId
- rootArtifactId
- 版
- package –基本的Java程序包名称,在项目创建期间放置在src / main / java中。
您也可以在POM和其他文件模板中使用它们。
Archetype-metadata.xml
创建项目后,存储在archetype-resources / META-INF / maven文件夹中的archetype-metadata.xml是您需要调整要生成的内容和方式的地方。
对于模块,您需要调整属性:
- id –这是将要生成的模块的名称。
- dir –模板目录
- 名称-将放置在pom文件中的工件ID。
对于id和name属性,您可以使用标准的Maven属性规范:$ {someproperty}。 对于目录,您需要使用特殊的__someproperty__表示法。 在大多数情况下,这将是__rootArtifactId__。 姜黄SOA原型中的一个例子。
必需的属性
必需属性是提示您提示可在模板中替代的其他信息的方式。 生成过程中将提示您指定的任何属性。 您也可以使用-D选项从命令行传递它们。 必需的属性在模板中作为属性引用,并在生成过程中被替换。
请注意指定默认值,在生成过程中不会提示您输入默认值。 仍可以使用-D选项覆盖它们。
原型目录
拥有原型目录很重要。 如果您使用的是Nexus 1.9.x,它将自动搜索您的存储库并为每个存储库生成原型目录。 它扫描所有原型,并且在部署原型后立即更新目录条目。 如果您还没有原型目录,那么maven可以从本地存储库为您创建一个原型目录。 只需运行mvn archetype:crawl。 输出将放置在您的.m2存储库中。 原型很重要,因为它们可以让其他人知道您的自定义原型,并提供一种共享和发现它们的方式。
Hopefull提供了这些技巧,您可以免除我所忍受的一些麻烦。 我的下一个任务是帮助Minerva项目创建一些原型,从而使Eclipse项目可以更轻松地开始使用Tycho。
您还有其他提示或需要注意的事项吗? 如果是这样,请随时添加评论。
参考:来自JCG合作伙伴的 Maven原型创建技巧 David Carver在智力抽筋博客上。
翻译自: https://www.javacodegeeks.com/2012/02/maven-archetype-creation-tips.html