Maven学习——使用自定义Maven Archetype创建项目

archetype--原型,顾名思义也即是模版,可以根据既定的规则创建项目所需的文件结构,比如创建一个SpringMVC的Web开发项目。

这是使用命令archetype:create-from-project来快速生成archetype。

创建流程

1.首先使用eclipse创建一个maven项目,比如选择org.apache.maven.archetypes:maven-archetype-webapp为原型,然后添加groupId和artifactId信息后点finish创建项目。

2.修改项目内容,添加自定义的部分。修改内容如下:

  • 添加maven插件maven-archetype-plugin用来生成archetype,其他的依赖包可根据需要添加,修改完的配置如下:

<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/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>me.zhaojunling.jeedev</groupId>
	<artifactId>maven-simple-webapp</artifactId>
	<packaging>war</packaging>
	<version>0.0.1-SNAPSHOT</version>
	<name>maven-simple-webapp Maven Webapp</name>
	<url>http://maven.apache.org</url>
	<dependencies>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>2.5</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.11</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
	<build>
		<finalName>maven-simple-webapp</finalName>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-archetype-plugin</artifactId>
				<version>2.3</version>
			</plugin>
		</plugins>
	</build>
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>
</project>

这里我添加了javax.servlet和junit两个web开发的基础包。

  • 这时项目如果有错误的提示,可以通过执行下面命令修复:右键点击项目  > Maven > Update Project... > OK。

    注:执行完成后会把JRE环境恢复默认,默认的编译等级是1.5。

  • 确认已经解决了项目所有的错误提示,然后通过命令行进入到项目的根目录。

cd E:\workspacesnew\luna-zjl\maven-simple-webapp
mvn archetype:create-from-project

# 进入到生成的archetype目录
cd target\generated-sources\archetype 
# 将archetype安装到本地
mvn install 

# 如果需要部署到网上则需要添加distributionManagement配置,修改当前目录下面的pom.xml文件添加类似下面的配置。
#	<distributionManagement>
#		<snapshotRepository>
#			<id>mynexus</id>
#			<url>http://nexus.zhaojunling.me/content/repositories/snapshots/</url>
#		</snapshotRepository>
#	</distributionManagement>  
mvn deploy  # 部署到远程服务器,供其他人使用

# 最后执行下面操作更新本地的archetype-catalog.xml
mvn archetype:crawl

注意: 不要忘记执行最后一步的mvn archetype:crawl,否则在本地仍然无法选择自定义的archetype。

在eclipse中使用

首先需要添加自定义的archetype到eclipse中,然后以后创建项目时才可以选择。

在创建maven项目的选择archetype界面中,添加自定义的archetype,内容则要和上面配置的相符(Archetype Artifact Id 除外),如下图:

1429787202322.jpg

其中的Archetype Artifact Id比项目pom.xml中定义的后面自动追加了“-archetype”,这个地方需要注意。

添加成功后就可以通过搜索查询到,注意勾选Include snapshot archetypes选项,否则没法查询出snapshot状态的archetype。

1429787202592.jpg


另外:

使用自定义的archetype创建的web项目部署名称,默认部署的时候context-root都是maven-simple-webapp,这个每次都要再手动修改一下。

右键点击项目 > Properties > Web Project Settings > 修改Context root为具体的部署名称,通常部署名称和当前项目的名称相同

提交评论