Maven 三種archetype(模板原型)說明


新建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的內容如下:

復制代碼
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!--
 3   Licensed to the Apache Software Foundation (ASF) under one
 4   or more contributor license agreements.  See the NOTICE file
 5   distributed with this work for additional information
 6   regarding copyright ownership.  The ASF licenses this file
 7   to you under the Apache License, Version 2.0 (the
 8   "License"); you may not use this file except in compliance
 9   with the License.  You may obtain a copy of the License at
10    http://www.apache.org/licenses/LICENSE-2.0
11   Unless required by applicable law or agreed to in writing,
12   software distributed under the License is distributed on an
13   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14   KIND, either express or implied.  See the License for the
15   specific language governing permissions and limitations
16   under the License.
17 -->
18 <!-- $Id: pom.xml 642118 2008-03-28 08:04:16Z reinhard $ -->
19 <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">
20  
21   <modelVersion>4.0.0</modelVersion>
22   <packaging>war</packaging>
23  
24   <name>springboot-cocoon</name>
25   <groupId>com.study.cx</groupId>
26   <artifactId>springboot-cocoon</artifactId>
27   <version>0.0.1-SNAPSHOT</version>
28  
29   <build>
30     <plugins>
31       <plugin>
32         <groupId>org.mortbay.jetty</groupId>
33         <artifactId>maven-jetty-plugin</artifactId>
34         <version>6.1.7</version>
35         <configuration>
36           <connectors>
37             <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
38               <port>8888</port>
39               <maxIdleTime>30000</maxIdleTime>
40             </connector>
41           </connectors>
42           <webAppSourceDirectory>${project.build.directory}/${pom.artifactId}-${pom.version}</webAppSourceDirectory>
43           <contextPath>/</contextPath>
44         </configuration>
45       </plugin>
46     </plugins>
47   </build>
48  
49   <dependencies>
50     <!--dependency>
51       <groupId>com.study.cx</groupId>
52       <artifactId>[the artifact id of the block to be mounted]</artifactId>
53       <version>0.0.1-SNAPSHOT</version>
54     </dependency-->
55   </dependencies>
56  
57 </project>
復制代碼

 



2、maven-archetype-quickstart
建好項目后,項目的結構如下:

 

 

在這個項目里,除了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  
 5   <groupId>com.study.cx</groupId>
 6   <artifactId>springboot-quickstart</artifactId>
 7   <version>0.0.1-SNAPSHOT</version>
 8   <packaging>jar</packaging>
 9  
10   <name>springboot-quickstart</name>
11   <url>http://maven.apache.org</url>
12  
13   <properties>
14     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
15   </properties>
16  
17   <dependencies>
18     <dependency>
19       <groupId>junit</groupId>
20       <artifactId>junit</artifactId>
21       <version>3.8.1</version>
22       <scope>test</scope>
23     </dependency>
24   </dependencies>
25 </project>
復制代碼

 

3、maven-archetype-webapp
建好項目后,項目的結構如下:

 


在這個項目里,有WEB-INF目錄,並且有web.xml和一個index.jsp

pom.xml的內容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<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)

 

原文:https://www.cnblogs.com/guankai/p/10076909.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM