如何创建Maven的Archetype

原文:http://maven.apache.org/guides/mini/guide-creating-archetypes.html

创建Maven的Archetype是一个相当直接的过程。一个Archetype就是一个非常简单的作品,它包含了你所希望的工程的原型。一个Archetype的组成如下:

?  一个原型描述符(它是位于src/main/resources/META-INF/maven/目录中的archetype.xml文件)。这个文件中列出了该原型中包含的所有文件,并且对它们进行分类,以便能够被运行生产机制正确的处理。

?  需要原型插件复制的所有的原型文件(这些文件位于src/main/resources/archetype-resources/目录中)。

?  由该原型生成的工程对象模型(POM)(它是位于src/main/resources/archetype-resources目录中的pom.xml文件)

?  该原型工程的工程对象模型(POM)(它位于该运行工程的根目录pom.xml)

注意:这个最小化的指南是依据Archetype插件V1.0.x来写的,它使用旧的原型描述文件(保存在archetype.xml文件中)。Archetype插件V2.0.x是一个完全支持V1.0.x的新一代插件,并且它会添加一个新的原型描述符(它保存在archetype-metadata.xml文件中),它更加灵活,并提供更多的功能,但本质上与之前的版本是相同的。

以下是创建原型的步骤:

1.      给该原型创建一个新的工程和pom.xml文件

该原型的pom.xml示例如下:

<projectxmlns="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.0http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>my.groupId</groupId>

<artifactId>my-archetype-id</artifactId>

<version>1.0-SNAPSHOT</version>

<packaging>jar</packaging>

</project>

需要你做的所有事情就是指定一个groupId,artifactId和version。这三个参数需要以后在命令行通过archetype:generate命令中调用原型时使用。

2.      创建原型描述符

这个原型描述符时一个叫做archetype.xml的文件,它必须位于src/main/resources/META-INF/maven/目录中。在quickstart原型中会找到以下原型描述符:

<archetype xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype/1.0.0http://maven.apache.org/xsd/archetype-1.0.0.xsd">

<id>quickstart</id>

<sources>

<source>src/main/java/App.java</source>

</sources>

<testSources>

<source>src/test/java/AppTest.java</source>

</testSources>

</archetype>

<id>标签应该跟本原型pom.xml中的artifactId相同。

<allowPartial>true</allowPartial>标签时可选的,在既存的工程上运行archetype:generate命令时有可能会用到。

<sources>、<resources>、<testSources>、<testResources>和<siteResources>标签代表不同的工程片段:

<sources>=src/main/java

<resources>=src/main/resources

<testSources>=src/test/java

<testResources>=src/test/resources

<siteResources>=src/site

<sources>和<testSources>能够包含<source>元素来指定源文件

<testResources>和<siteResources>能够包含<resource>元素来指定资源文件

把其他的诸如src/main/webapp目录中资源放到<resources>标签中

至此,就指定了一个要创建的,而且目录不为空的独立的文件。

以下是quickstart原型中定义目录结构:

archetype

|-- pom.xml

`-- src

`-- main

`--resources

|--META-INF

|   `-- maven

|       `--archetype.xml

`--archetype-resources

|--pom.xml

`--src

|-- main

|  `-- java

|       `-- App.java

`-- test

`-- java

`-- AppTest.java

3.      创建原型文件和该原型的pom.xml

接下来要创建的原型组件是该原型的pom.xml文件,任何pom.xml都不要忘记设置artifactId和groupID(${artifactId}/${groupId})的变量。这两个变量会在命令行中调用archetype:generate时来初始化。

以下是一个原型pom.xml的示例:

<projectxmlns="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>Acustom project</name>

<url>http://www.myorganization.org</url>

<dependencies>

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>3.8.1</version>

<scope>test</scope>

</dependency>

</dependencies>

</project>

4.      安装原型并运行原型插件

现在可以调用mvn install命令来安装原型了。

至此我们的原型就创建完成了,你可以通过下面的命令在本地系统中使用它。在这个命令中,你需要给要使用的原型指定完整的信息(包括groupId、artifactId和version),以及你要创建的新工程的信息(包括artifactId和groupId)。不要忘记包含原型的版本信息,如果没有包含版本信息,原型的创建就会报出错误信息:RELEASE was not found)。

mvn archetype:generate                                  \

-DarchetypeGroupId=<archetype-groupId>                \

-DarchetypeArtifactId=<archetype-artifactId>          \

-DarchetypeVersion=<archetype-version>                \

-DgroupId=<my.groupid>                                \

-DartifactId=<my-artifactId>

一旦你的原型达到了你满意的状态,你就可以把它作为原型模板来部署,然后让任意Maven用户来使用。

5.      创建原型的另外一种方法

可以使用如下的方法来提供手工创建原型的目录结构:

mvn archetype:generate

-DgroupId=[yourproject‘s group id]

-DartifactId=[your project‘s artifact id]

-DarchetypeArtifactId=maven-archetype-archetype

然后,你就可以定制archetype-resources目录和archetype.xml文件中的内容,然后回到上面的步骤4(安装原型并运行原型插件)

时间: 2024-11-08 23:53:34

如何创建Maven的Archetype的相关文章

Eclipse创建Maven时提示错误could not resolve archetype

今天用Eclipse创建Maven多模块项目的时候提示错误: could not resolve archetype ******release from any of the configured repositories 这个问题网上主要是两个解决方案: 1.是修改setting.xml文件 详情请见:http://www.cnblogs.com/dingyingsi/p/3616802.html 2.是添加新的Catalog配置 详情请见:http://blog.csdn.net/afga

[转]maven创建自定义的archetype

创建自己的archetype一般有两种方式,比较简单的就是create from project 1.首先使用eclipse创建一个新的maven project,然后把配置好的一些公用的东西放到相应的目录下面    比如说会将一些常用的java代码存放到src/main/java目录下面:    会将一些通用的配置文件放到src/main/resources目录下面: 如果是javeEE工程,还会有一些jsp等等的文件存放到src/main/webapp目录下面 2.然后在maven proj

eclispe 创建maven 项目:Could not resolve archetype org.apache.maven.archetypes

昨天新装eclispe 后,创建maven工程后出现 Could not resolve archetype org.apache.maven.archetypes:maven-archetype-quickstart:RELEASE from any of the configured repositories.  Could not resolve artifact    Missing org.apache.maven.archetypes:maven-archetype-quicksta

通过mvn archetype:generate创建Maven项目模板慢的问题

通过mvn archetype:generate这种交互方式来创建Maven项目模板的时候,经常会长时间卡在Generating project in Interactive mode这一行提示(图1). 看了网上的帖子(文章最底下有说明),发现是获取archetype-catalog.xml导致的(浏览器访问http://repo1.maven.org/maven2/archetype-catalog.xml,需要等待很长时间才能获取到). 其实下载下来会发现Maven提供的archetype

解决使用eclipse创建maven web项目时报Could not resolve archetype的问题

前两天重装了系统,今天想写一个项目的时候出现了点问题. 在使用eclipse创建maven web项目时,点Finish后报了Could not resolve archetype的问题. Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webapp:1.0 from any of the configured repositories.Could not resolve artifact org.a

解决eclipse创建maven项目报错!Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webapp

maveneclipse测试 我是使用代理上网的.在创建maven时报以下错误: Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webapp:RELEASE from any of the configured repositories. 解决办法: 首先找到 config/settting.xml 在里面添加代理信息 ----------  这个是重点: <proxies><proxy&g

eclipse创建maven工程出现Could not resolve archetype org.apache.maven.archetypes错误

首先,推荐使用最新版的Eclipse-LUNA(4.4.1).当我创建maven项目时.使用kepler版就会出错.使用luna就没事.不知为何. 今天使用Eclipse创建maven项目时,出现了.如题错误.结果我去网上搜索解决方法时,都说要去下载maven-archetype-quickstart.1.1.jar.其实我在我的maven 本地 repository中就找到了它(在“repository\org\apache\maven\archetypes\maven-archetype-q

(推荐)不用archetype创建maven项目

已剪辑自: https://www.cnblogs.com/wql025/p/5215570.html 说明 创建Maven项目的方式:手工创建 好处:项目干净整洁,java和resource目录,不需要自己重新构建.pom文件干净,没有乱七八糟的东西.不会再网络不好,或者各种问题的时候,出现archetype加载半天出不来的情况. 更为关键的是用这种方式创建的maven项目的web.xml的版本可自己手工选择:(不会再出现之前的不支持EL什么的坑了.) 创建一个新Maven项目 new 一个p

eclipse 创建maven 项目 动态web工程(出现问题)

Eclipse 创建maven 项目 动态web工程 注:Eclipse版本为(Version: Mars.1 Release (4.5.1))maven版本为(apache-maven-3.3.9) 1. 此处是在你安装好了maven插件的前提下进行的并且配置好了你的maven环境指定好了你的maven的本地仓库.下面就开始maven web项目的搭建 首先:点击新建一个项目maven 2.点击next 3.选择web选项 4.创建你的项目的坐标点击finish完成 5.项目创建完成但是有错误