自定义项目脚手架- Maven Archetypes
2014-03-17 20:14
351 查看
在上篇Intellij修改archetype Plugin配置 中我们已经简单介绍了关于archetype的作用。
简单来说maven archetype插件就是创建项目的脚手架,你可以通过命令行或者IDE集成简化项目创建的工作。例如:
org.apache.maven.archetypes:maven-archetype-quickstart
org.apache.maven.archetypes:maven-archetype-site
org.apache.maven.archetypes:maven-archetype-webapp
以及spring或者第三方提供了一些archetype plugin。
同时maven archetype插件也是一个简单的maven artifact,它包含了创建项目所需要的所有资源。 主要分为几类原型信息:
archetype描述文件(src/main/resources/META-INF/maven/archetype.xml),这为archetype 1.0, 包含所有创建项目的文件信息和路径信息。在(archetype 2.0)[http://maven.apache.org/archetype/maven-archetype-plugin/]增加了更灵活的archetype-metadata.xml(src/main/resources/META-INF/maven/下), archetype元数据信息,并且完全支持1.0.
项目的原型文件(src/main/resources/archetype-resources/之下),将会被archetype插件 copy到项目目录结构去。
创建项目的pom文件(src/main/resources/archetype-resources下)
archetype pom文件,在archetype项目根目录下。
创建archetype-metadata.xml,位于src/main/resources/META-INF/maven/目录下,例如:
更多配置信息参考archetype-descriptor.
为将创建的项目增加pom.xml文件,以${artifactId} / ${groupId} 变量作为占位符,例如:
接下来在archetype项目下install plugin:mvn clean install.
利用已有acrchetype plugin创建项目:
命令行:
Intellij选择增加archetype plugin:
对于删除intellij 测试 archetype信息,请参见Intellij修改archetype Plugin配置.
注意:
如果你也需要文件或者目录名字以artifactId生成,则需要用特殊变量__artifactId__(双下划线)作为占位符。
本文demo,请移到到github maven-archetypes-demo.
简单来说maven archetype插件就是创建项目的脚手架,你可以通过命令行或者IDE集成简化项目创建的工作。例如:
org.apache.maven.archetypes:maven-archetype-quickstart
org.apache.maven.archetypes:maven-archetype-site
org.apache.maven.archetypes:maven-archetype-webapp
以及spring或者第三方提供了一些archetype plugin。
同时maven archetype插件也是一个简单的maven artifact,它包含了创建项目所需要的所有资源。 主要分为几类原型信息:
archetype描述文件(src/main/resources/META-INF/maven/archetype.xml),这为archetype 1.0, 包含所有创建项目的文件信息和路径信息。在(archetype 2.0)[http://maven.apache.org/archetype/maven-archetype-plugin/]增加了更灵活的archetype-metadata.xml(src/main/resources/META-INF/maven/下), archetype元数据信息,并且完全支持1.0.
项目的原型文件(src/main/resources/archetype-resources/之下),将会被archetype插件 copy到项目目录结构去。
创建项目的pom文件(src/main/resources/archetype-resources下)
archetype pom文件,在archetype项目根目录下。
创建archetype插件
首先在archetype中加入一个pom文件,如下:<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>com.github.greengerong</groupId> <artifactId>component</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>component</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> </dependencies> </project>
创建archetype-metadata.xml,位于src/main/resources/META-INF/maven/目录下,例如:
<?xml version="1.0" encoding="UTF-8"?> <archetype-descriptor name="app-server"> <fileSets> <fileSet filtered="true" encoding="UTF-8"> <directory>src/main/java</directory> <includes> <include>**/*.**</include> </includes> </fileSet> <fileSet filtered="true" encoding="UTF-8"> <directory>src/test/java</directory> <includes> <include>**/*.**</include> </includes> </fileSet> </fileSets> </archetype-descriptor>
更多配置信息参考archetype-descriptor.
为将创建的项目增加pom.xml文件,以${artifactId} / ${groupId} 变量作为占位符,例如:
<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>${groupId}</groupId> <artifactId>${artifactId}</artifactId> <version>${version}</version> <packaging>jar</packaging> <name>${artifactId}</name> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies> <build> <pluginManagement> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins> </pluginManagement> </build> </project>
接下来在archetype项目下install plugin:mvn clean install.
利用已有acrchetype plugin创建项目:
命令行:
mvn archetype:generate -DarchetypeGroupId=<archetype-groupId> -DarchetypeArtifactId=<archetype-artifactId> -DarchetypeVersion=<archetype-version> -DgroupId=<my.groupid> -DartifactId=<my-artifactId>
Intellij选择增加archetype plugin:
对于删除intellij 测试 archetype信息,请参见Intellij修改archetype Plugin配置.
注意:
如果你也需要文件或者目录名字以artifactId生成,则需要用特殊变量__artifactId__(双下划线)作为占位符。
本文demo,请移到到github maven-archetypes-demo.
相关文章推荐
- 自定义项目脚手架- Maven Archetypes
- maven自定义脚手架(快速生成项目)
- 自定义maven项目模板-脚手架
- Maven-Archetype自定义项目脚手架(一)
- eclipse 创建maven项目时 报错 Unable to create project from archetype [org.apache.maven.archetypes:ma
- maven多级项目使用 slf4j+log4j,以及自定义配置文件路径
- maven项目自定义指定 jdk 版本
- Maven根据现有项目自定义archetype
- 自定义maven骨架/以当前项目为模板创建maven骨架
- eclipse新建maven项目,提示错误“Could not resolve archetype org.apache.maven.archetypes .”
- (转)Maven之自定义archetype生成项目骨架
- 使用Eclipse自带的Maven插件创建Web项目时报错:Could not resolve archetype org.apache.maven.archetypes:maven-archetyp
- 启动Maven项目,自定义端口号
- Maven之自定义archetype生成项目骨架
- Maven之自定义pom类型的基础项目
- Maven学习记录(1)——Maven项目中导入本地自定义jar包
- maven项目基于已存在工程的脚手架搭建
- 自定义Maven Hadoop项目骨架
- eclipse创建maven We项目时错误:Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webap
- Maven之自定义archetype生成项目骨架(一)