使用mvn archetype 撸一个脚手架

上一篇# springboot开发,有这个包就够了!介绍了springboot项目开发中常用的基础功能组件封装,本篇基于上一篇产出的springboot基础包依赖,只用一行命令,帮你生成具备基础功能的脚手架,让你不再需要ctrl + c 、ctrl + v创建项目,然你不在需要揪心依赖冲突等重新搭建框架遇到的问题

本项目github 地址github.com/chenxuancod…

什么是archetype

archetype 也就是原型,是一个 Maven 插件,准确说是一个项目模板,它的任务是根据模板创建一个项目结构。

自定义archeType

  • 创建一个普通的maven项目

image.png

  • 定义项目模板

在archetype-resources目录下,即为要生成的脚手架的模板。你认为通用的脚手架功能需要什么只管往里面扔就是。 我这里因为集成了base依赖,所以需要做一些Mybatis-plus分页的配置、Swagger的配置等配置,另外提供了个Generate.java用来生成代码 image.png image.png 总之,模板内容按需添加

  • 定义模板参数

META-INF/archetype-metadata

<?xml version="1.0" encoding="UTF-8"?>
<arche-type-descriptor name="archetype">
    <fileSets>
        <fileSet filtered="true" encoding="UTF-8" packaged="true">
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.*</include>
            </includes>
        </fileSet>
        <fileSet filtered="true" packaged="true">
            <directory>src/test/java</directory>
            <includes>
                <include>**/*.java</include>
            </includes>
        </fileSet>
        <fileSet filtered="true" packaged="false">
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.yml</include>
            </includes>
        </fileSet>
    </fileSets>
    <requiredProperties>
        <requiredProperty key="port"/>
        <requiredProperty key="groupId">
            <defaultValue>com.sleeper</defaultValue>
        </requiredProperty>
        <requiredProperty key="artifactId">
            <defaultValue>demo</defaultValue>
        </requiredProperty>
        <requiredProperty key="package">
            <defaultValue>${groupId}.${artifactId}</defaultValue>
        </requiredProperty>
        <requiredProperty key="version">
            <defaultValue>1.0.0-SNAPSHOT</defaultValue>
        </requiredProperty>
    </requiredProperties>
</arche-type-descriptor>
复制代码

requiredProperties节点内定义了项目模板的变量参数,这些参数可以在mvnarchetype:generate命令生成脚手架时候传入。

生成项目

  • 使用Maven install 编译archetype项目
  • 使用mvn archetype 命令生成项目
mvn archetype:generate -DarchetypeGroupId=com.sleeper -DarchetypeArtifactId=archetype -DarchetypeVersion=1.0.0-SNAPSHOT -DgroupId=com.sleeper -DartifactId=demo -Dport=8888
复制代码

猜你喜欢

转载自juejin.im/post/7036277918191845383