自定义MavenArchetype之maven-archetype-archetype
Maven自身提供了许多Archetype来方便用户创建Project,但是每个团队都可能会有一些常用的文件或配置,为了避免在创建project时重复的拷贝和修改,我们通过自定义Archetype来规范显得还蛮有必要,下面简单介绍下使用maven-archetype-archetype来构建自己的Archetype的过程。
创新互联"三网合一"的企业建站思路。企业可建设拥有电脑版、微信版、手机版的企业网站。实现跨屏营销,产品发布一步更新,电脑网络+移动网络一网打尽,满足企业的营销需求!创新互联具备承接各种类型的成都做网站、成都网站设计、成都外贸网站建设项目的能力。经过10余年的努力的开拓,为不同行业的企事业单位提供了优质的服务,并获得了客户的一致好评。
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;
@Configuration
public 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
**/*.*
名称栏目:自定义MavenArchetype之maven-archetype-archetype
文章起源:http://hbruida.cn/article/ieipse.html