Maven

自定义archetype

2019-01-12  本文已影响9人  王勇1024

为什么要自定义archetype

Maven也内置了很多的archetype供用户选择使用什么样的骨架去创建一个项目,比如:

maven-archetype-webapp
maven-archetype-quickstart

在创建一个maven项目的时候会列出很多archetype供选择,Maven默认的archetype是maven-archetype-webapp。

但是在一个团队做开发的过程中,可能仅仅依靠Maven预先提供的archetyp可能是不够的,团队之间协作有自己的定义方式,每个人的结构定义风格也不尽相同,在这样的背景下我们有必要去定义一个统一的代码骨架供团队使用,这样做的好处还有在新人加入团队的初期能够快速的理解项目。

自定义archetype

进入项目根目录,执行下面的命令:

mvn archetype:create-from-project 

此时会在该项目的target目录下发现如下文件:


目录结构

进入到archetype目录下,也就是到达我们项目的根目录执行:

cd target/generated-sources/archetype/
mvn install

IDEA使用自定义archetype生成项目

File>New>Project

使用自定义archetype生成项目

设置GroupId、ArtifactId和Version

项目设置

成功生成项目

成功生成项目

但我发现build.sh、docker/run.sh文件中的${artifactId}变量并没有被替换,原因是 <fileSet>没有添加 filtered="true" 的设置,filtered="true"标识下面提到的${}是否要进行替换

    <fileSet encoding="UTF-8">
      <directory>docker</directory>
      <includes>
        <include>**/*.</include>
        <include>**/*.sh</include>
      </includes>
    </fileSet>
    <fileSet encoding="UTF-8">
      <directory></directory>
      <includes>
        <include>build.sh</include>
        <include>.gitignore</include>
      </includes>
    </fileSet>
  </fileSets>

修改后重新执行 mvn install,再重新生成项目即可,项目启动成功:

 .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.1.1.RELEASE)

2019-01-12 12:22:31.199 [main] INFO  com.yidian.data.Application - Starting Application on admindeMacBook-Pro.local with PID 55375 (/Users/admin/workspace/demo/target/classes started by admin in /Users/admin/workspace/demo)
2019-01-12 12:22:31.204 [main] INFO  com.yidian.data.Application - The following profiles are active: dev

参考资料:https://segmentfault.com/a/1190000005044702

上一篇 下一篇

猜你喜欢

热点阅读