Maven项目的三种archetype说明


非原创作品。转自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

建好项目后,项目的结构如下:

Maven项目的三种archetype说明_第1张图片

可以看到,这个项目结构里包含了applicationContext.xml、log4j.xml、web.xml

pom.xml的内容如下:


     
     
     
     
  1. xml version="1.0" encoding="UTF-8"?>
  2. <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">
  3. <modelVersion>4.0.0 modelVersion>
  4. <packaging>war packaging>
  5. <name>springboot-cocoon name>
  6. <groupId>com.study.cx groupId>
  7. <artifactId>springboot-cocoon artifactId>
  8. <version>0.0.1-SNAPSHOT version>
  9. <build>
  10. <plugins>
  11. <plugin>
  12. <groupId>org.mortbay.jetty groupId>
  13. <artifactId>maven-jetty-plugin artifactId>
  14. <version>6.1.7 version>
  15. <configuration>
  16. <connectors>
  17. <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
  18. <port>8888 port>
  19. <maxIdleTime>30000 maxIdleTime>
  20. connector>
  21. connectors>
  22. <webAppSourceDirectory>${project.build.directory}/${pom.artifactId}-${pom.version} webAppSourceDirectory>
  23. <contextPath>/ contextPath>
  24. configuration>
  25. plugin>
  26. plugins>
  27. build>
  28. <dependencies>
  29. dependencies>
  30. project>

2、 maven-archetype-quickstart

建好项目后,项目的结构如下:

Maven项目的三种archetype说明_第2张图片

在这个项目里,除了pom.xml外,没有其他的xml了,但是有main、test两个包,包里放了一个App、AppTest类

pom.xml的内容如下:


     
     
     
     
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation= "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. <modelVersion>4.0.0 modelVersion>
  4. <groupId>com.study.cx groupId>
  5. <artifactId>springboot-quickstart artifactId>
  6. <version>0.0.1-SNAPSHOT version>
  7. <packaging>jar packaging>
  8. <name>springboot-quickstart name>
  9. <url>http://maven.apache.org url>
  10. <properties>
  11. <project.build.sourceEncoding>UTF-8 project.build.sourceEncoding>
  12. properties>
  13. <dependencies>
  14. <dependency>
  15. <groupId>junit groupId>
  16. <artifactId>junit artifactId>
  17. <version>3.8.1 version>
  18. <scope>test scope>
  19. dependency>
  20. dependencies>
  21. project>

3、 maven-archetype-webapp

建好项目后,项目的结构如下:

Maven项目的三种archetype说明_第3张图片

在这个项目里,有WEB-INF目录,并且有web.xml和一个index.jsp

pom.xml的内容如下:


     
     
     
     
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation= "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  3. <modelVersion>4.0.0 modelVersion>
  4. <groupId>com.study.cx groupId>
  5. <artifactId>srpingboot-mavenWebapp artifactId>
  6. <packaging>war packaging>
  7. <version>0.0.1-SNAPSHOT version>
  8. <name>srpingboot-mavenWebapp Maven Webapp name>
  9. <url>http://maven.apache.org url>
  10. <dependencies>
  11. <dependency>
  12. <groupId>junit groupId>
  13. <artifactId>junit artifactId>
  14. <version>3.8.1 version>
  15. <scope>test scope>
  16. dependency>
  17. dependencies>
  18. <build>
  19. <finalName>srpingboot-mavenWebapp finalName>
  20. build>
  21. 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(创建一个基于HibernateSpring 和 Tapestry 4的Web应用程序的原型) 
5: appfuse-core(创建一个基于HibernateSpring 和 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)




你可能感兴趣的:(Maven)