自定义Maven Archetype之 maven-archetype-archetype
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,Maven自身提供了许多Archetype来方便用户创建Project,但是每个团队都可能会有一些常用的文件或配置,为了避免在创建project时重复的拷贝和修改,我们通过自定义Archetype来规
千家信息网最后更新 2025年02月01日自定义Maven Archetype之 maven-archetype-archetype
Maven自身提供了许多Archetype来方便用户创建Project,但是每个团队都可能会有一些常用的文件或配置,为了避免在创建project时重复的拷贝和修改,我们通过自定义Archetype来规范显得还蛮有必要,下面简单介绍下使用maven-archetype-archetype来构建自己的Archetype的过程。
1,创建自己的Archetype项目
模板
mvn archetype:generate \ -DarchetypeGroupId= \ -DarchetypeArtifactId= \ -DarchetypeVersion= \ -DgroupId= \ -DartifactId=
例如:
mvn archetype:generate \ -DgroupId=com.ultrapower.maven.archetypes \ -DartifactId=springboot-maven-archetype \ -DarchetypeArtifactId=maven-archetype-archetype \ -DinteractiveMode=false \ -X
1) springboot-maven-archetype下的pom.xml和一般的maven项目一样用于定义archetype项目的坐标等信息
2) springboot-maven-archetype/src/main/resources/archetype-resources下的所有内容定义了待生成项目的所有文件(原型文件)
3) springboot-maven-archetype/ src/main/resources/META-INF/maven/archetype.xml中定义骨架的描述符(元数据),这个文件列出了包含在archetype中的所有文件并将这些文件分类。
注:springboot-maven-archetype/pom.xml如下
4.0.0 com.ultrapower.maven.archetypes springboot-maven-archetype 1.0-SNAPSHOT Archetype - springboot-maven-archetype http://maven.apache.org
2,修改archetype-resources下的pom.xml,添加需要的配置
如:
4.0.0 ${groupId} ${artifactId} ${version} jar ${artifactId} http://www.myorganization.org org.springframework.boot spring-boot-starter-parent 2.0.0.RELEASE UTF-8 UTF-8 1.8 org.springframework.boot spring-boot-starter org.springframework.boot spring-boot-starter-web io.springfox springfox-swagger2 2.8.0 io.springfox springfox-swagger-ui 2.8.0 org.apache.commons commons-lang3 junit junit 3.8.1 test
3,添加需要的文件
例如:
如Application.java
package ${package};import org.springframework.boot.Banner;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;import org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration;import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;import org.springframework.boot.web.servlet.FilterRegistrationBean;import org.springframework.boot.web.servlet.ServletComponentScan;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.ComponentScan;@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class, JmsAutoConfiguration.class })@ServletComponentScan@ComponentScan(basePackages = { "${package}" })public class Application { public static void main(String[] args) { SpringApplication app = new SpringApplication(Application.class); app.setBannerMode(Banner.Mode.OFF); app.run(args); }}
如CorsConfig.java
package ${package}.config.beanconfig;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.cors.CorsConfiguration;import org.springframework.web.cors.UrlBasedCorsConfigurationSource;import org.springframework.web.filter.CorsFilter;@Configurationpublic class CorsConfig { private CorsConfiguration buildConfig() { CorsConfiguration corsConfiguration = new CorsConfiguration(); // 1 设置访问源地址 corsConfiguration.addAllowedOrigin("*"); // 2 设置访问源请求头 corsConfiguration.addAllowedHeader("*"); // 3 设置访问源请求方法 corsConfiguration.addAllowedMethod("*"); return corsConfiguration; } @Bean public CorsFilter corsFilter() { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); // 4 对接口配置跨域设置 source.registerCorsConfiguration("/**", buildConfig()); return new CorsFilter(source); }}
4,修改archetype.xml文件
如:
springboot-maven-archetype src/main/resources/application.yml src/main/resources/application-dev.yml src/main/resources/application-prod.yml boot/control.sh boot/control.bat
上面是将每个文件都列出来了,还可以使用通配符的方式来简化配置,例如:
springboot-maven-archetype **/*.*
5,安装archetype
mvn install
6,使用自定义的archetype创建项目
mvn archetype:generate -DarchetypeGroupId=com.ultrapower.maven.archetypes -DarchetypeArtifactId=springboot-maven-archetype -DarchetypeVersion=1.0-SNAPSHOT -DgroupId=com.ultrapower.ioss -DartifactId=springboot-archetype-test -X
注意: 我们可以将archetype.xml换成"archetype-metadata.xml",以下的内容可以达到同样的效果,但还是推荐archetype.xml
archetype-metadata.xml:
src/main/java **/*.java src/main/resources **/*.* boot **/*.* src/test/java **/*.java src/test/resources **/*.*
文件
项目
配置
内容
UTF-8
必要
信息
原型
团队
地址
坐标
对接口
常用
拷贝
效果
数据
方式
方法
模板
用户
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
js数据库封装操作
智能网络技术哪家强
数据库中的sage什么意思
减少网络安全隐患
数据库学生信息表案例
西安 车 消费数据库
用于数据库备份的命令
中国网络安全总教头
软件开发助理工程师工作总结
备份数据库(完整)
软件开发专利想法思路
河南汉之星软件开发
松江区管理软件开发业务流程
网络安全文明上网的手抄报初一
北京地区服务器虚拟主机
上海美函网络技术有限公司
郴州学电脑软件开发在哪学
柜员机取钱显示服务器异常
大专学网络技术考什么证
数据库运维有哪些证可以考
手机网络安全教育提纲
梦幻西游服务器排队满了怎么办
服务器内存越大越好吗
小学生网络安全知识小视频
中国合伙人软件开发
tp5 数据库视图跳转
软件开发生产问题快速解决
wsus数据库分析
移动客户端软件开发
单位网络安全制度