自定义maven模版

119 阅读1分钟

新建面板项目

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.mj</groupId>
  <artifactId>maven-quick-start</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>maven-quick-start</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.16.2</version>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-api</artifactId>
      <version>5.7.2</version> <!-- 可以根据最新版本进行更新 -->
    </dependency>
    <dependency>
      <!--log4j2-->
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-slf4j-impl</artifactId>
      <version>2.17.1</version>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.28</version>
    </dependency>

  </dependencies>
  <!--以下为构建插件必备-->
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-archetype-plugin</artifactId>
        <version>3.2.1</version>
      </plugin>
    </plugins>
    <extensions>
      <extension>
        <groupId>org.apache.maven.archetype</groupId>
        <artifactId>archetype-packaging</artifactId>
        <version>3.0.1</version>
      </extension>
    </extensions>

  </build>

</project>

项目结构

image.png

archetype.properties

配置构建模板的时候模板的坐标、忽略的文件。 主要文件放在项目的根目录

# 原型的坐标 必须声明
archetype.groupId=org.mj
# 最好按照约定以-archetype结尾
archetype.artifactId=maven-quick-start-archetype
archetype.version=1.0
# 需要忽略的文件夹和文件类型 英文逗号隔开
excludePatterns=**/.idea/**,**/*.iml

其他自定义配置

log4j2

<?xml version="1.0" encoding="UTF-8"?><Configuration status="error">
    <Properties>
        <Property name="PATTERN">%d %highlight{%-5level} %style{%pid}{magenta} [%10.10t] %style{%-10.30c{1.}}{cyan} : %msg%n%throwable</Property>
    </Properties>

    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout>
                <pattern>${PATTERN}</pattern>
            </PatternLayout>
        </Console>
    </Appenders>
    <Loggers>
        <Root level="DEBUG">
            <AppenderRef ref="Console"/>
        </Root>
    </Loggers>
</Configuration>

构建模板

mvn archetype:create-from-project -Darchetype.properties=./archetype.properties -X

构建模板到本地

cd target/generated-sources/archetype/
mvn clean install

根据模板创建坐标相关信息

#这个路径在执行install的时候会打印出来
/Users/work/dev/soft/apache-maven-3.8.4-bin/Repository/org/mj/maven-quick-start-archetype/1.0/
mvn archetype:crawl

查看生成的坐标

查看配置的maven目录里的archetype-catalog.xml

查看生成的插件的坐标

 <archetype>
      <groupId>org.mj</groupId>
      <artifactId>maven-quick-start-archetype</artifactId>
      <version>1.0</version>
      <description>maven-quick-start</description>
    </archetype>

创建项目使用该坐标

image.png

image.png

最终结果展示

image.png 运行一下看看:

image.png

插件项目代码

maven-quick-start