Maven之自定义archetype生成项目骨架(构建脚手架项目)
Posted 上善若水
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven之自定义archetype生成项目骨架(构建脚手架项目)相关的知识,希望对你有一定的参考价值。
一、生成自定义archetype
创建maven项目,每次都要选择一个骨架,总有一部分东西是我们不需要的,有时候创建项目时选择了一个骨架,用的时候,需要删删减减的,解决办法就是创建一个自己的自定义骨架,每次创建maven的时候,就使用自己的骨架,相对方便多了。
archetype
自定义的优势:
- 可以集成公共的开发组件,提高开发效率。公司内部对中间件的封装,可以集成进来;开源社区的优质轮子,可以集成进来。这样,项目可以有大量的优秀组件,避免重复造轮子。另外,如果需要创建新项目,可以一键生成,不必在复制一个项目,更改项目名,删减代码之类的。
- 项目风格统一,便于统一维护。试想,同一个
archetype
生成的项目,无论是项目结构,还是项目依赖的组件,应该都是类似的。如果有新的开发同学进入项目,熟悉了某个项目,其它项目除了业务逻辑,基本上不需要理解成本。
1.1、在IDEA中进行自定义archetype
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-archetype-plugin</artifactId>
<version>3.1.1</version>
</plugin>
在项目根目录下新建archetype.properties
模板规则文件
# 添加不需要放到模板的正则匹配
excludePatterns=.idea/**,README.md,.mvn/wrapper/*,.gitignore
# 需要替换处理的文件后缀,默认没有yml、yaml
archetype.filteredExtensions=java,yml,yaml,xml,txt,groovy,cs,mdo,aj,jsp,gsp,vm,html,xhtml,properties,.classpath,.project
1.2、执行maven 命令
archetype:create-from-project
,执行maven命令
遇到警告,警告信息:Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
解决方法:警告信息可以不做处理。
archetype:create-from-project
命令执行完之后,项目会生成target目录文件,至此,骨架相当于已经生成,但是需要安装,还需要把骨架添加到maven中。
2.选择target文件执行install
命令
[INFO] Installing D:\\dev_workspace\\yx-jxc-parent\\target\\generated-sources\\archetype\\target\\yx-jxc-parent-archetype-1.0.0.jar to D:\\maven_repository\\com\\deewin\\yx-jxc-parent-archetype\\1.0.0\\yx-jxc-p
arent-archetype-1.0.0.jar
[INFO] Installing D:\\dev_workspace\\yx-jxc-parent\\target\\generated-sources\\archetype\\pom.xml to D:\\maven_repository\\com\\deewin\\yx-jxc-parent-archetype\\1.0.0\\yx-jxc-parent-archetype-1.0.0.pom
- 执行
archetype:crawl
命令,用于构建骨架,在本地仓库的根目录生成archetype-catalog.xml骨架配置文件:
二、使用archetype创建项目
2.1、采用maven提供的archetype
生成项目
通常我们在创建一个maven项目的时候会使用idea界面窗口去创建,创建时选择一个模板即可,操作简单。
在下面的例子中,我们将在 E:\\Maven 文件夹下创建一个基于 maven 的 java 应用项目。命令格式如下:
mvn archetype:generate -DgroupId=com.deewin -DartifactId=javaProjectTest -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
参数说明:
DgourpId
: 组织名,公司网址的反写 + 项目名称DartifactId
: 项目名-模块名DarchetypeArtifactId
: 指定ArchetypeId
,maven-archetype-quickstart
,创建一个简单的 Java 应用DinteractiveMode
: 是否使用交互模式
2.2、采用自己构建的archetype
生成项目
2.2.1、方法1:利用自动生成的 archetype-catalog.xml
来创建项目
当我们install
后,会在本地的maven仓库目录下生成如下定义archetype
文件:
我们运行如下命令
mvn archetype:generate -DarchetypeCatalog=local
2.2.2、方法2:需要将install
后的achetype
项目copy到插件查找目录org\\apache\\maven\\archetypes
以上是关于Maven之自定义archetype生成项目骨架(构建脚手架项目)的主要内容,如果未能解决你的问题,请参考以下文章
Maven实战技巧「插件使用专题」Maven-Archetype插件创建自定义maven项目骨架