Maven 三种archetype(原型)

新建Maven project项目时,需要选择archetype。

那么,什么是archetype?

archetype就是模板原型的意思,原型将帮助作者为用户创建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的内容如下:





 
  4.0.0
  war
 
  springboot-cocoon
  com.study.cx
  springboot-cocoon
  0.0.1-SNAPSHOT
 
  
    
      
        org.mortbay.jetty
        maven-jetty-plugin
        6.1.7
        
          
            
              8888
              30000
            
          
          ${project.build.directory}/${pom.artifactId}-${pom.version}
          /
        
      
    
  
 
  
    
  
 

2、maven-archetype-quickstart

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

Maven 三种archetype(原型)_第2张图片

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

pom.xml的内容如下:


  4.0.0
 
  com.study.cx
  springboot-quickstart
  0.0.1-SNAPSHOT
  jar
 
  springboot-quickstart
  http://maven.apache.org
 
  
    UTF-8
  
 
  
    
      junit
      junit
      3.8.1
      test
    
  

3、maven-archetype-webapp

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

Maven 三种archetype(原型)_第3张图片

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

pom.xml的内容如下:


  4.0.0
  com.study.cx
  srpingboot-mavenWebapp
  war
  0.0.1-SNAPSHOT
  srpingboot-mavenWebapp Maven Webapp
  http://maven.apache.org
  
    
      junit
      junit
      3.8.1
      test
    
  
  
    srpingboot-mavenWebapp
  

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)

 

示例——使用Archetype生成项目骨架:

cmd中运行:

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

Maven 三种archetype(原型)_第4张图片

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

Maven 三种archetype(原型)_第5张图片

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://

你可能感兴趣的:(java框架)