如何创建maven archetype

如何创建maven archetype,第1张

以下是创建maven archetype的步骤:

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(安装原型并运行原型插件)

会看到常常的输出,有很多可用的Archetype供选择;每一个Archetype前面都有一个对应的编号,同时命令行会提供一个默认的编号,其对应的Archetype为maven-archetype-quickstart,回车选择该Archetype:

紧接着Maven会提示输入要创建项目的groupId,artifactId,version及包名package:

Archetype会根据输入的信息创建项目骨架。在当前目录下,创建一个名为hellomvn(定义的artifactId)的子目录,从中可以看到项目的基本结构:基本的pom.xml,代码目录src/main/java,同时包含一个java类:com.mvntest.hellomvn.core.App。测试代码目录src/test/java,也包含一个测试Jave类com.mvntest.hellomvn.core.AppTest。

一个项目的基本骨架生成。

Archetype

可以讲Archetype理解成Maven项目的模板,例如maven-archetype-quickstart就是最简单的Maven项目模板,只需提供基本的元素,如groupId,artifactId,version等,它就能生成项目的基本结构及POM文件。

Maven Archetype Plugin

使用Archetype的一般步骤

命令——mvn archetype:generate

输入命令后,Archetype插件会输出一个Archetype列表供用户选择;选择自己想要使用的Archetype,输入对应编号

提示输入一些基本参数,如groupId,artifactId,version,package等

Archetype插件生成项目骨架

常用Archetype

maven-archetype-quickstart

默认的Archetype,基本内容包括:

一个包含junit依赖声明的pom.xml

src/main/java主代码目录及一个名为App的类

src/test/java测试代码目录及一个名为AppTest的测试用例

maven-archetype-webapp

一个最简单的Maven war项目模板,当需要快速创建一个Web应用的时候可以使用它。生成的项目内容包括:

一个packaging为war且带有junit依赖声明的pom.xml

src/main/webapp/目录

src/main/webapp/index.jsp文件

src/main/webapp/WEB-INF/web.xml文件

创建自己的Archetype

Archetype Catalog

Catalog用来指定maven-archetype-plugin读取archetype-catalog.xml文件的位置:

internal——maven-archetype-plugin内置的

local——本地的,位置为~/.m2/archetype-catalog.xml

remote——指向Maven中央仓库的Catalog

file://

http://


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8093661.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存