Maven Archetype Plugin可以根据一个已存在的项目,创建一个原型项目。然后可以使用此原型项目,创建最终的用于实际开发的项目。
Archetype翻译为原型,也可以理解为模板。简单的说,Maven Archetype Plugin可以帮助我们把一个已存在的项目制作为项目模板,然后根据此项目模板,创建一个新的项目。此插件的官方文档请参考Maven Archetype Plugin
以下介绍如何在Eclipse里使用Maven Archetype Plugin,开发环境搭建请参考<<搭建基于Eclipse+Maven的开发环境>>
1.使用maven-archetype-quickstart项目原型创建一个Maven项目hello-maven,具体可参考帖子开发环境搭建
2.右键点击hello-maven项目-->Run As-->Maven build...,创建一个Eclipse运行配置。在弹出的窗口输入如下命令,最后点击Run按钮:
3.运行完成后,会在hello-maven项目的target/generated-sources/archetype目录下,生成原型项目文件(如果没有看见,可右键点击项目-->Refresh)
4.接着把原型项目文件导入一个Maven项目,方便修改。点击菜单项File-->New-->Project..,在弹出窗选择General-->Project,新建一个普通项目hello-maven-archetype
5.右键点击新建的hello-maven-archetype项目-->Configure-->Convert to Maven Project,把此项目转换为Maven项目,在弹出窗口输入以下信息,点击Finish按钮:
6.转换为Maven项目后,会生成pom.xml文件,备份此文件(可简单右键复制-->粘贴),后面会用到此文件里的信息
6.把以上步骤生成的hello-maven项目下的target/generated-sources/archetype下的所有文件复制-->粘贴到hello-maven-archetype项目下(如果提示文件已存在,则选择直接覆盖)。复制后的项目目录如下:
7.打开Copy of pom.xml,把此文件里的内容覆盖到相应的pom.xml文件里,然后删除Copy of pom.xml。以下为覆盖后的pom.xml的部分内容:
注意:version需修改为0.0.1,如果版本号带有SNAPSHOT等字样,后期在新建Maven项目时,会选择不到hello-maven-archetype原型
8.此时,如果发现hello-maven-archetype有错误,可打开Problem视图,右键点击错误项-->Quick Fix,点击弹出窗口的Finish按钮,更新Maven配置即可
9.右键点击hello-maven-archetype项目-->Run As-->Maven install,把此项目原型安装到Maven仓库,以便后面使用
10.下面介绍如何使用hello-maven-archetype。点击菜单项File-->New-->Project..-->Maven-->Maven Project, 新建一个Maven项目。点击Next按钮,在以下界面,点击Add Archetype..按钮,添加我们自定义的hello-maven-archetype
11.在弹出窗口输入以下信息(需要与hello-maven-archetype的pom.xml里的信息对应),点击确定按钮(此处添加的信息将会保存在{USER_HOME}\.m2\archetype-catalog.xml,可以直接编辑此文件添加自定义的archetype项目):
12.选择Default Local-->hello-maven-archetype,创建hello-maven-one项目,后面步骤省略
注1:如果选择不到,请先确认版本号没有SNAPSHOT字样,然后试试使用-clean参数重启Eclipse
注2:如果直接就可以选到,可跳过前面Add Archetype步骤
以上,hello-maven是已存在的示例项目,hello-maven-archetype是原型项目,hello-maven-one是根据原型项目创建的最终项目,可用于实际开发
我们可以修改原型项目里的archetype-metadata.xml,以决定如何创建最终项目。比如可设置原型项目里哪些文件目录需要放入最终项目。具体设置请参考官方文档ArcheTypeDescriptor
可设置原型项目里的文件是否经过渲染后,再放入最终项目里。archetype插件使用Velocity作为渲染引擎。并且预先定义了gruopId, artifactId, version, package 四个变量。打开原型项目文件pom.xml:
可以看到此文件使用了${gruopId},${artifactId},${version}引用了预定义的变量值:
打开原型项目文件App.java,可见此文件使用了${package}引用了预定义变量值:
在创建Maven项目的最后一步,可以设置这些变量值,而自定义变量值将显示在下面:
以下代码在archetype-metadata.xml里自定义了一个appClassName变量,其默认值为Hello:
可以在项目原型文件里使用${appClassName}引用此变量值,可以使用__appClassName__在项目原型文件名称里引用此变量值,如:
注:archetype插件暂不支持在项目原型文件名称里引用变量值,但是使用以上格式却可以引用
自定义变量需要在archetype.properties里配置默认值,否则在运行mvn install命令时会提示测试不通过:
如果原型项目所在的Maven仓库需要身份验证,那么在settings.xml里配置的server名称必须是[archetypeArtifactId]-repo,以本文为例,配置如下:
注:如果你的所有自定义原型项目都在同一个远程Maven仓库里,那么server的名称可以设置为archetype
<server> <id>hello-maven-archetype-repo</id> <username>your_username</username> <password>your_password</password> </server>
相关推荐
用SVN/Git客户端检出项目 SVN: svn://gitee.com/longshu/maven-archetypes Git: https://gitee.com/longshu/maven-archetypes.git Git: https://github.com/xlongshu/maven-archetypes.git quickstart mvnw clean ...
该项目包含一个 Maven 原型,用于创建新项目以开发 Apache NiFi 项目的自定义处理器。 用法 这些说明假设您拥有 JDK7、Maven >= 3.0.5,并且已经构建了 。 将此存储库克隆到您的计算机 cd nifi-processor-bundle-...
payengineer-webui-customer-原型Payengineer自定义Web ui原型工件开发。
第13章:使用Maven生成项目原型/13.2 编写自己的项目原型/13.2.4 archetype.xml描述符文件 第13章:使用Maven生成项目原型/13.2 编写自己的项目原型/13.2.5 将原型项目上传到私有仓库 第13章:使用Maven生成项目原型...
现在,您可以在本地的任何项目中使用as: mvn org.example:generate:archetypeproject ###可以使用的标志: mvn org.example:generate:archetypeproject -DappTitle=title -DappId=appId -DgroupId=appId -...
要使用自定义Maven原型,您必须手动添加外部Maven原型。 此IntelliJ IDEA插件可让您定义外部Maven原型目录文件的列表。 创建新的Maven项目时,将获取这些文件,并在IntelliJ IDEA中提供包含的Maven原型。用法安装...
轻松启动新的Java EE和Jakarta EE项目 自定义Maven原型的存储库: 具有Microprofile 3.3和Java 11的Jakarta EE 8 使用这种Maven原型,您可以在几秒钟内引导一个简单的Jakarta EE 8应用程序。 该原型包含以下文件/...
AEM项目原型 Maven模板创建一个最小的,基于最佳实践的Adobe Experience Manager(AEM)项目作为您网站的起点。 文献资料 :原型架构及其不同模块的概述。 以下教程基于该原型: :了解如何启动一个全新的网站。 ...
第二部分将从GDMS原型创建,例如编写一个或多个自定义SQL函数。OrbisGIS OSGi SQL Bundle Artchetype osgi-sql包含用于编写您自己SQL函数并将其作为新服务公开的原型。 OrbisGIS将注意到该用户定义SQL函数,并将其...
自定义缓存存储原型安装原型运行命令mvn archetype:update-local-catalog install使用原型运行命令mvn archetype:generate -DarchetypeGroupId=org.infinispan -DarchetypeArtifactId=custom-cache-store-archetype
请记住在所有文件中自定义项目名称和文本。 编译 git clone https://github.com/xxyy/xxyy-archetypes.git mvn install 这会将所有原型安装到您的本地存储库中。 用法 要安装原型,请在您最喜欢的 shell fork 中...
创建扩展项目的最简单方法是使用NiFi的nar原型。 创建nar项目的实例 mvn -DarchetypeGroupId=org.apache.nifi -DarchetypeArtifactId=nifi-processor-bundle-archetype -DarchetypeVersion=0.0.2-incubating-...
原型父项目 10. 构建生命周期 10.1. 简介 10.1.1. 清理生命周期 (clean) 10.1.2. 默认生命周期 (default) 10.1.3. 站点生命周期 (site) 10.2. 打包相关生命周期 10.2.1. JAR 10.2.2. POM 10.2.3. ...
阴影原型Fortnite壁纸选项卡-由Supertabthemes创建此扩展程序是为所有Fortnite粉丝创建的。 通过下载,您将获得与Shadow Archetype Fortnite相关的惊人壁纸,以及一些其他功能。 我们的扩展程序可以让您:-用质量...
在要生成新项目的目录下执行以下命令: mvn archetype:generate -DarchetypeGroupId=com.yurishchev.aem -DarchetypeVersion=1.0.0 -DarchetypeArtifactId=basic-archetype 填写所需的属性。 所有原型都有3个基本...
archetype-application-example-widgetset:小部件集,自定义客户端代码和小部件附加组件的依赖性 archetype-application-example-ui:主要应用程序模块,开发时间 archetype-application-example-production:产生...
欢迎来到您的 beanstalk-maven-plugin 原型项目!关于有关最新信息,请参阅 这个项目是从 elasticbeanstalk-service-webapp-archetype 生成的。 实际上,它是使用 Amazon Web Services 的 Elastic Beanstalk 服务的...