Maven原型是项目模板,可以帮助我们根据其类型快速创建maven入门项目 。 这是一个非常省力的引导Maven项目的好工具。
有许多可供选择的原型。 一些流行的原型包括– maven-archetype-quickstart , maven-archetype-webapp , maven-archetype-archetype 。 要创建具有特定原型的Maven项目,我们可以使用:
mvn archetype:generate
该命令将要求我们选择一个原型,然后从中创建我们的maven项目。
我们还可以定义自定义原型。 当我们的项目中有许多共享相同结构的模块化应用程序时,这特别有用。 我们可以简单地标准化用于创建我们的项目模块的模板。
在本教程中,我们将学习创建和使用我们自己的Maven原型。
创建Maven原型:
从我们现有的项目之一创建Maven原型非常容易。 我们需要做的就是执行:
mvn archetype:create-from-project
从我们项目的根目录。
(可选)我们可以使用archetype-maven-plugin直接生成原型项目:
mvn archetype:generate -B -DarchetypeArtifactId=maven-archetype-archetype
无论哪种方式,在成功创建原型后,我们都会看到在目标/生成源/原型中生成的原型文件。
现在我们已经生成了原型结构,我们可以选择:
- 根据我们的要求,修改target / generation-sources / archetype / pom.xml以添加或删除额外的依赖项
- 修改我们的原型元数据文件-target / generated-sources / archetype / src / main / resources / META-INF / maven / archetype-metadata.xml
原型元数据描述符:
让我们快速看一下rchetype-metadata.xml包含什么。
rchetype-metadata.xml存储我们原型的元数据。 它位于 jar内的–META-INF / maven文件夹中。
元数据文件结构类似于:
<archetype-descriptor...name="my-custom-archetype"><requiredProperties><requiredProperty key="name"><defaultValue>ProgrammerGirl</defaultValue></requiredProperty></requiredProperties><fileSets><fileSet filtered="true" packaged="true"><directory>src/main/java</directory><includes><include>**/*.java</include></includes></fileSet></fileSets><modules><module name="sub-module-1"></module><module name="sub-module-2"></module></modules></archetype-descriptor>
以下是一些重要的标签及其用途:
- <requiredProperties>标记定义了从该原型生成项目所需的属性。 用户还可以选择继续使用属性的defaultValue
- <fileSet>定义如何使用jar文件中的项目文件来生成项目。 如果文件或目录名称包含
__ property __
模式,则将其替换为相应的属性值 - 在筛选的fileSet属性中,占位符在项目生成过程中被替换为提供的值
- packaged =“ true”表示所选文件将在package属性前面的目录结构中生成
- 对于多模块项目,我们可以使用< modules>标记来定义子模块
建立原型:
完成对pom.xml和archetype-metadata.xml文件的修改后,就可以构建原型项目。
让我们转到路径/ generation-sources / archetype并执行 :
mvn clean install
它将插件安装在我们的本地存储库中。 我们可以交叉检查本地存储库中是否存在我们新创建的原型:
mvn archetype:generate -DarchetypeCalalog=local
使用创建的原型:
到现在为止,我们已经在本地存储库中成功安装了自定义原型。 为了从这个新创建的原型生成一个项目,我们将使用:
mvn archetype:generate -DarchetypeGroupId=com.programmergirl.archetypes-DarchetypeArtifactId=my-custom-archetype-DarchetypeVersion=1.0-SNAPSHOT-DgroupId=com.programmergirl-DartifactId=sample-project-Dversion=1.0-SNAPSHOT
其中com.programmergirl.archetypes和my-custom-archetype是我们先前创建的主要原型项目的groupId和artifactId 。 参数-DgroupId和-DartifactId指定新生成的项目的groupId和artifactId 。
结论:
在本教程中,我们讨论了如何创建自定义Maven原型并使用它来生成多个项目。
翻译自: https://www.javacodegeeks.com/2019/05/creating-custom-maven-archetype.html