当前位置: 首页 > news >正文

maven archetype

1.简介

maven脚手架是为了创建一个项目模板,以后新建项目都能够复用该模板
maven中模板引擎使用的是velocity,在文件中可以使用它的语法获取变量等操作

2.实现

单模块脚手架实现
image.png

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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.example</groupId><artifactId>single-springboot-template</artifactId><version>1.0-SNAPSHOT</version><packaging>maven-archetype</packaging><properties><maven.compiler.source>11</maven.compiler.source><maven.compiler.target>11</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven-javadoc-plugin.version>3.2.0</maven-javadoc-plugin.version><maven-source-plugin.version>3.2.1</maven-source-plugin.version><maven-gpg-plugin.version>1.6</maven-gpg-plugin.version><maven-archetype-plugin.version>3.2.1</maven-archetype-plugin.version><maven-checksum-plugin.version>1.10</maven-checksum-plugin.version></properties><build><extensions><extension><groupId>org.apache.maven.archetype</groupId><artifactId>archetype-packaging</artifactId><version>${maven-archetype-plugin.version}</version></extension></extensions><plugins><plugin><groupId>net.nicoulaj.maven.plugins</groupId><artifactId>checksum-maven-plugin</artifactId><version>${maven-checksum-plugin.version}</version><executions><execution><id>create-checksums</id><goals><goal>artifacts</goal></goals></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-source-plugin</artifactId><version>2.2.1</version><executions><execution><id>attach-sources</id><goals><goal>jar-no-fork</goal></goals></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-javadoc-plugin</artifactId><version>2.9.1</version><configuration><encoding>UTF-8</encoding><aggregate>true</aggregate><charset>UTF-8</charset><docencoding>UTF-8</docencoding></configuration><executions><execution><id>attach-javadocs</id><goals><goal>jar</goal></goals><configuration><additionalparam>-Xdoclint:none</additionalparam></configuration></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-release-plugin</artifactId><version>2.5.3</version><configuration><autoVersionSubmodules>true</autoVersionSubmodules><useReleaseProfile>false</useReleaseProfile><releaseProfiles>release</releaseProfiles><goals>deploy</goals></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>3.1.0</version><configuration><includeEmptyDirs>true</includeEmptyDirs><addDefaultExcludes>false</addDefaultExcludes></configuration></plugin><plugin><artifactId>maven-archetype-plugin</artifactId><version>${maven-archetype-plugin.version}</version><configuration><!-- needed to include .gitignore --><useDefaultExcludes>false</useDefaultExcludes></configuration></plugin></plugins></build>
</project>

archetype-metadata.xml

<?xml version="1.0" encoding="UTF-8"?>
<archetype-descriptorxsi:schemaLocation="https://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.1.0 http://maven.apache.org/xsd/archetype-descriptor-1.1.0.xsd"name="xfg-frame-archetype"xmlns="https://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.1.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><fileSets><fileSet filtered="true" encoding="UTF-8"><directory>docs</directory><includes><include>**/**</include></includes></fileSet><fileSet filtered="true" encoding="UTF-8"><directory>script</directory><includes><include>**/**</include></includes></fileSet><fileSet filtered="true" encoding="UTF-8"><directory>deploy</directory><includes><include>**/**</include></includes></fileSet><fileSet encoding="UTF-8"><directory/><includes><include>README.md</include><include>.gitignore</include></includes></fileSet><fileSet filtered="true" encoding="UTF-8"><directory>src/main/java</directory><includes><include>**/**</include></includes></fileSet><fileSet filtered="true" encoding="UTF-8"><directory>src/main/resources</directory><includes><include>**/**</include></includes></fileSet><fileSet><directory>src/test/java</directory></fileSet></fileSets>
</archetype-descriptor>
#模板项目安装到本地
mvn claen install#执行生成项目命令 静默方式不需要用户输入mvn archetype:generate -DgroupId=com.wl -DartifactId=demo -Dpackagename=com.wl -DarchetypeGroupId=org.example -DarchetypeArtifactId=single-springboot-template -DarchetypeVersion=1.0-SNAPSHOT  -DinteractiveMode=false#执行生成项目命令mvn archetype:generate -DgroupId=com.wl -DartifactId=demo -Dpackagename=com.wl  -DarchetypeGroupId=org.example -DarchetypeArtifactId=single-springboot-template -DarchetypeVersion=1.0-SNAPSHOT

3.参考文档

  1. https://medium.com/@sybrenbolandit/maven-archetype-deed0160cdeb
  2. Velocity入门到精通(上篇)_velocity教程-CSDN博客

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • LeetCode 热题 HOT 100 (011/100)【宇宙最简单版】
  • 代码随想录算法训练营DAY64|拓扑排序、dijkstra(朴素版)
  • 基因组挖掘指导天然药物分子的发现-文献精读34
  • MongoDB教程(十五):MongoDB原子操作
  • 【系列专题】新质生产力之光,照亮“制造强国”之路
  • 【SpringBoot】URL映射之consumes和produces匹配、params和header匹配
  • go-kratos 学习笔记(1) 安装
  • 【数据结构】树和二叉树
  • InternLM学习笔记
  • 图解RocketMQ之消息模型详解(1)
  • Java程序中常见问题
  • Linux源码阅读笔记14-IO体系结构与访问设备
  • LC61----1374. 生成每种字符都是奇数个的字符串(字符串)---java版
  • C++树(二)【直径,中心】
  • 初识dockerFile之RUN和WORKDIR
  • 11111111
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • Date型的使用
  • es6
  • Fabric架构演变之路
  • java2019面试题北京
  • KMP算法及优化
  • Linux后台研发超实用命令总结
  • Linux下的乱码问题
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • Python爬虫--- 1.3 BS4库的解析器
  • Ruby 2.x 源代码分析:扩展 概述
  • Solarized Scheme
  • spring boot 整合mybatis 无法输出sql的问题
  • Zepto.js源码学习之二
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 前端性能优化--懒加载和预加载
  • 使用agvtool更改app version/build
  • 走向全栈之MongoDB的使用
  • UI设计初学者应该如何入门?
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • 数据库巡检项
  • 我们雇佣了一只大猴子...
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • # wps必须要登录激活才能使用吗?
  • #nginx配置案例
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (6)STL算法之转换
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (第一天)包装对象、作用域、创建对象
  • (二) 初入MySQL 【数据库管理】
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (六)DockerCompose安装与配置
  • (五十)第 7 章 图(有向图的十字链表存储)
  • (转)LINQ之路
  • (转)Mysql的优化设置
  • (转)编辑寄语:因为爱心,所以美丽
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • (自用)仿写程序
  • .NET 3.0 Framework已经被添加到WindowUpdate