当我们在idea中创建项目时,经常会见到如下界面选择:
archetype也就是原型,准确说是一个项目模板,我们可以根据该模板来生成项目。
我就不介绍图形界面的创建方式了,一步一步太啰嗦了,我们用命令方式创建。
创建一个常见的webapp项目。
命令如下:
mvn archetype:generate -DgroupId=com.cj -DartifactId=webAppDemo -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
archetype:generate //archetype代表插件名,generate代表目标,一个插件有多个目标
意思就是我们通过archetype插件创建一个webapp项目,项目的groupId是com.cj,项目id是webAppDemo.使用的项目archetype是maven-archetype-webapp。也就是一个java web项目。interactiveMode= false,代表在执行过程中,用户不能进行输入操作。默认是true,需要用户进行操作。
这里我们用到了一个插件archetype,执行他的generate目标来创建项目,当然还有其他目标,比如:create-from-project,下面我会介绍。
看下上面创建的结果和项目结构:
上面创建完的项目还不是很标准的webapp项目,我们还要作写处理,参考:idea创建webapp项目。
好了,上面介绍了如何使用原型创建项目,再来介绍如何根据自己的项目创建原型。
在项目的根目录,运行如下命令:
1.mvn archetype:create-from-project
它会生成archetype项目的相关文件。
2.mvn install
切换到项目的target/generated-sources/archetype/下,运行上面命令,我们要对archetype项目打包。
可以看到,我们已经生成了archetype项目。
那我们来测试下,根据我们生成的archetype项目来生成项项目,有2种方法。
方法1:利用自动生成的archetype-catalog.xml来创建项目。
当我们install后,会在~/m2.目录生成如下定义archetype文件:
<?xml version="1.0" encoding="UTF-8"?> <archetype-catalog xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0 http://maven.apache.org/xsd/archetype-catalog-1.0.0.xsd" xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <archetypes> <archetype> <groupId>com.chenjun</groupId> <artifactId>springBootAop-archetype</artifactId> <version>1.0.1</version> <description>Spring Boot AOP Sample</description> </archetype> </archetypes> </archetype-catalog>
我们运行:mvn archetype:generate -DarchetypeCatalog=local
表示利用本地archetype-catalog.xml定义的archetype来创建项目。
方法2:需要将install后的achetype项目copy到插件查找目录org\apache\maven\archetypes
可以看到,利用自己生成的archetype,能够生成我们自己的项目了。
PS:记得把自己installl的archetype的jar,手工copy到本地仓库的org\apache\maven\archetypes目录下,因为是从该目录下查找本地插件。
总结:
一、根据archetype创建项目的命令
mvn archetype:generate -DgroupId=com.cj -DartifactId=webAppDemo -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
二、根据项目生成archetype的命令
1.mvn archetype:create-from-project //生成archetype项目文件
2.cd target/generated-sources/archetype/ //切换到archetype项目跟目录
3.mvn install //对archetype项目打包安装
4.mvn archetype:generate -DarchetypeCatalog=local //利用local本地提供的archetype创建项目