当前位置: 首页 > 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博客
http://www.lryc.cn/news/406421.html

相关文章:

  • 浏览器打开抽奖系统html
  • 微信小程序-使用Component方法代替Page方法构造页面
  • Spark SQL----DISTRIBUTE BY子句
  • HTML5-canvas1
  • 【NOI-题解】1009 - 数组逆序1162 - 数组元素的删除1211 - 数组元素的插入1161. 元素插入有序数组1159. 数组元素的移动
  • 新电脑如何设置 npm 源及查看源、安装 cnpm、pnpm 和 yarn 的详细教程
  • 完全移动huggingface模型仓库(不是简单mv)
  • 手机空号过滤批量查询的意义及方法
  • Dockerfile制作部署wordpress-6.6
  • 项目的纪要
  • ubuntu 更新源
  • XGBoost、RF随机森林算法MATLAB实现
  • WPF 解决: DataGrid 已定义列,但是还是会显示模型的所有属性的问题
  • 【ai】Easy-RAG : ImportError: cannot import name ‘BaseModel‘ from ‘pydantic‘
  • WebKit简介
  • 笔记 | Python环境下的GUI编程常用包
  • mysql 数据库空间统计sql
  • 【Linux】线程——线程池、线程池的实现、线程安全的线程池、单例模式的概念、饿汉和懒汉模式、互斥锁、条件变量、信号量、自旋锁、读写锁
  • stm32入门-----TIM定时器(PWM输出比较——下)
  • css实现线条中间高亮,左右两边模糊(linear-gradient的运用)
  • 【数据结构】建堆算法复杂度分析及TOP-K问题
  • Thinkphp5实现前后端通过接口通讯基本操作方法
  • Go 语言任务编排 WaitGroup
  • 星环科技推出知识库产品 AI PC时代数据交互方式变革
  • 10道JVM经典面试题
  • Redisson常用的数据结构及应用场景
  • 【实现100个unity特效之8】使用ShaderGraph实现2d贴图中指定部分局部发光效果
  • Ubuntu 24.04 LTS Noble安装Docker Desktop简单教程
  • XML 和 SimpleXML 入门教程
  • leetcode--链表类题目总结