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 命令

  1. 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
  1. 执行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: 指定 ArchetypeIdmaven-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实战技巧「插件使用专题」Maven-Archetype插件创建自定义maven项目骨架

#私藏项目实操分享#Maven实战技巧「插件使用专题」Maven-Archetype插件创建自定义maven项目骨架

maven自定义骨架

Maven骨架生成项目速度慢问题解决办法

用maven骨架生成项目速度慢的问题