非原创作品。转自https://blog.csdn.net/cx1110162/article/details/78297654
新建Maven project项目时,需要选择archetype。
那么,什么是archetype?
archetype的意思就是模板原型的意思,原型是一个Maven项目模板工具包。一个原型被定义为从其中相同类型的所有其它事情是由一个原始图案或模型。名称配合,因为我们正在努力提供一种系统,该系统提供了一种生成Maven项目的一致的手段。原型将帮助作者为用户创建Maven项目模板,并为用户提供了手段,产生的这些项目模板参数化的版本。
建立Maven项目时,网上建议的分别是
1、cocoon-22-archetype-webapp
2、maven-archetype-quickstart
3、maven-archetype-webapp
那么为什么是这三种模板呢?这三种模板分别代表什么意思呢?
1、cocoon-22-archetype-webapp
建好项目后,项目的结构如下:
可以看到,这个项目结构里包含了applicationContext.xml、log4j.xml、web.xml
pom.xml的内容如下:
-
xml version="1.0" encoding="UTF-8"?>
-
-
-
<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>
-
<packaging>war
packaging>
-
-
<name>springboot-cocoon
name>
-
<groupId>com.study.cx
groupId>
-
<artifactId>springboot-cocoon
artifactId>
-
<version>0.0.1-SNAPSHOT
version>
-
-
<build>
-
<plugins>
-
<plugin>
-
<groupId>org.mortbay.jetty
groupId>
-
<artifactId>maven-jetty-plugin
artifactId>
-
<version>6.1.7
version>
-
<configuration>
-
<connectors>
-
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
-
<port>8888
port>
-
<maxIdleTime>30000
maxIdleTime>
-
connector>
-
connectors>
-
<webAppSourceDirectory>${project.build.directory}/${pom.artifactId}-${pom.version}
webAppSourceDirectory>
-
<contextPath>/
contextPath>
-
configuration>
-
plugin>
-
plugins>
-
build>
-
-
<dependencies>
-
-
dependencies>
-
-
project>
建好项目后,项目的结构如下:
在这个项目里,除了pom.xml外,没有其他的xml了,但是有main、test两个包,包里放了一个App、AppTest类
pom.xml的内容如下:
-
<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.study.cx
groupId>
-
<artifactId>springboot-quickstart
artifactId>
-
<version>0.0.1-SNAPSHOT
version>
-
<packaging>jar
packaging>
-
-
<name>springboot-quickstart
name>
-
<url>http://maven.apache.org
url>
-
-
<properties>
-
<project.build.sourceEncoding>UTF-8
project.build.sourceEncoding>
-
properties>
-
-
<dependencies>
-
<dependency>
-
<groupId>junit
groupId>
-
<artifactId>junit
artifactId>
-
<version>3.8.1
version>
-
<scope>test
scope>
-
dependency>
-
dependencies>
-
project>
建好项目后,项目的结构如下:
在这个项目里,有WEB-INF目录,并且有web.xml和一个index.jsp
pom.xml的内容如下:
-
<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>com.study.cx
groupId>
-
<artifactId>srpingboot-mavenWebapp
artifactId>
-
<packaging>war
packaging>
-
<version>0.0.1-SNAPSHOT
version>
-
<name>srpingboot-mavenWebapp Maven Webapp
name>
-
<url>http://maven.apache.org
url>
-
<dependencies>
-
<dependency>
-
<groupId>junit
groupId>
-
<artifactId>junit
artifactId>
-
<version>3.8.1
version>
-
<scope>test
scope>
-
dependency>
-
dependencies>
-
<build>
-
<finalName>srpingboot-mavenWebapp
finalName>
-
build>
-
project>
maven提供的41个骨架原型分别是:
1: appfuse-basic-jsf (创建一个基于Hibernate,Spring和JSF的Web应用程序的原型)
2: appfuse-basic-spring(创建一个基于Hibernate,Spring和Spring MVC的Web应用程序的原型)
3: appfuse-basic-struts(创建一个基于Hibernate,Spring和Struts 2的Web应用程序的原型)
4: appfuse-basic-tapestry(创建一个基于Hibernate,Spring 和 Tapestry 4的Web应用程序的原型)
5: appfuse-core(创建一个基于Hibernate,Spring 和 XFire的jar应用程序的原型)
6: appfuse-modular-jsf(创建一个基于Hibernate,Spring和JSF的模块化应用原型)
7: appfuse-modular-spring(创建一个基于Hibernate, Spring 和 Spring MVC 的模块化应用原型)
8: appfuse-modular-struts(创建一个基于Hibernate, Spring 和 Struts 2 的模块化应用原型)
9: appfuse-modular-tapestry (创建一个基于 Hibernate, Spring 和 Tapestry 4 的模块化应用原型)
10: maven-archetype-j2ee-simple(一个简单的J2EE的Java应用程序)
11: maven-archetype-marmalade-mojo(一个Maven的 插件开发项目 using marmalade)
12: maven-archetype-mojo(一个Maven的Java插件开发项目)
13: maven-archetype-portlet(一个简单的portlet应用程序)
14: maven-archetype-profiles()
15:maven-archetype-quickstart()
16: maven-archetype-site-simple(简单的网站生成项目)
17: maven-archetype-site(更复杂的网站项目)
18:maven-archetype-webapp(一个简单的Java Web应用程序)
19: jini-service-archetype(Archetype for Jini service project creation)
20: softeu-archetype-seam(JSF+Facelets+Seam Archetype)
21: softeu-archetype-seam-simple(JSF+Facelets+Seam (无残留) 原型)
22: softeu-archetype-jsf(JSF+Facelets 原型)
23: jpa-maven-archetype(JPA 应用程序)
24: spring-osgi-bundle-archetype(Spring-OSGi 原型)
25: confluence-plugin-archetype(Atlassian 聚合插件原型)
26: jira-plugin-archetype(Atlassian JIRA 插件原型)
27: maven-archetype-har(Hibernate 存档)
28: maven-archetype-sar(JBoss 服务存档)
29: wicket-archetype-quickstart(一个简单的Apache Wicket的项目)
30: scala-archetype-simple(一个简单的scala的项目)
31: lift-archetype-blank(一个 blank/empty liftweb 项目)
32: lift-archetype-basic(基本(liftweb)项目)
33: cocoon-22-archetype-block-plain([http://cocoapacorg2/maven-plugins/])
34: cocoon-22-archetype-block([http://cocoapacorg2/maven-plugins/])
35:cocoon-22-archetype-webapp([http://cocoapacorg2/maven-plugins/])
36: myfaces-archetype-helloworld(使用MyFaces的一个简单的原型)
37: myfaces-archetype-helloworld-facelets(一个使用MyFaces和Facelets的简单原型)
38: myfaces-archetype-trinidad(一个使用MyFaces和Trinidad的简单原型)
39: myfaces-archetype-jsfcomponents(一种使用MyFaces创建定制JSF组件的简单的原型)
40: gmaven-archetype-basic(Groovy的基本原型)
41: gmaven-archetype-mojo(Groovy mojo 原型)
(41中骨架原文链接:http://www.cnblogs.com/iusmile/archive/2012/11/14/2770118.html)