1. 程式人生 > >Maven 三種archetype說明

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.   <modelVersion>4.0.0</modelVersion>  
  21.   <packaging>war</packaging>  
  22.   <name>springboot-cocoon</name>  
  23.   <groupId>com.study.cx</groupId>  
  24.   <artifactId>springboot-cocoon</artifactId>  
  25.   <version>0.0.1-SNAPSHOT</version>  
  26.   <build>  
  27.     <plugins>  
  28.       <plugin>  
  29.         <groupId>org.mortbay.jetty</groupId>  
  30.         <artifactId>maven-jetty-plugin</artifactId>  
  31.         <version>6.1.7</version>  
  32.         <configuration>  
  33.           <connectors>  
  34.             <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">  
  35.               <port>8888</port>  
  36.               <maxIdleTime>30000</maxIdleTime>  
  37.             </connector>  
  38.           </connectors>  
  39.           <webAppSourceDirectory>${project.build.directory}/${pom.artifactId}-${pom.version}</webAppSourceDirectory>  
  40.           <contextPath>/</contextPath>  
  41.         </configuration>  
  42.       </plugin>  
  43.     </plugins>  
  44.   </build>  
  45.   <dependencies>  
  46.     <!--dependency>  
  47.       <groupId>com.study.cx</groupId>  
  48.       <artifactId>[the artifact id of the block to be mounted]</artifactId>  
  49.       <version>0.0.1-SNAPSHOT</version>  
  50.     </dependency-->  
  51.   </dependencies>  
  52. </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.   <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

建好專案後,專案的結構如下:


在這個專案裡,有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(建立一個基於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://blog.csdn.net/cx1110162/article/details/78297654

相關推薦

Maven archetype說明

新建Maven project專案時,需要選擇archetype。那麼,什麼是archetype?archetype的意思就是模板原型的意思,原型是一個Maven專案模板工具包。一個原型被定義為從其中相同型別的所有其它事情是由一個原始圖案或模型。名稱配合,因為我們正在努力提供

Maven 實戰 - 常用archetype說明

archetype:原型的意思,可理解為Maven專案模板工具包 常用archetype    1、cocoon-22-archetype-webapp 2、maven-archetype-quickstart 3、maven-archetype-webapp mvn a

Maven倉庫的配置

部分 releases oca mave log ble cal password 歡迎頁 原文:http://www.cnblogs.com/jack1995/p/6925879.html 1 本地倉庫的配置   在第一篇中我們介紹過,Maven的倉庫有三類,這裏不再介紹

maven啟動方式

tomcat ava share path base sport height rem sun 1 沒有Tomcat情況下;(教程:http://8e351a5c.wiz03.com/share/s/2edhFs04v4Ek2hJTUO1rWuJG3kNEf92eOkvZ2

JavaScript:學習筆記(7)——VAR、LET、CONST變量聲的區別

也不能 機制 隱患 data- 進行 tro 作用 開始 hoisting JavaScript:學習筆記(7)——VAR、LET、CONST三種變量聲明的區別   ES2015(ES6)帶來了許多閃亮的新功能,自2017年以來,許多JavaScript開發人員已經熟悉並

maven專案的部署方式

第一種:打包成.war檔案,拷貝到tomcat中webapps檔案內即可完成部署。 第二種:在pom.xml中引入tomcat-maven外掛,將從中央庫下載tomcat相關jar包,然後通過maven build進行部署。 第三種:直接使用service部署。本人用此種方法部署時開始一直不成功,有一點特別注

maven打包外掛方式

http://www.blogjava.net/liuguly/archive/2017/05/03/432496.html本文是轉發的一篇部落格,原文參考上面連結第一種        <groupId>org.apache.maven.plugins</g

Maven打包的方式

Maven可以使用mvn package指令對專案進行打包,如果使用Java -jar xxx.jar執行執行jar檔案,會出現"no main manifest attribute, in xxx.jar"(沒有設定Main-Class)、ClassNotFound

maven:讀取程式版本號的方案

方案1 在應用專案中,如果應用程式需要獲取當前程式的版本號,可以讀取”/META-INF/maven/${groupId}/${artifactId}/pom.properties“,獲取maven生成的版本資訊。 當然前提用應用程式在執行時得知道自己的gr

maven打包springboot專案的場景

近期開發了一個微服務專案,打包部署的時候遇到過很多問題,現將遇到的問題總結,方便有需要的猿友們借鑑1、有些公共程式碼,如快取,資料來源和公共實體類以及其它工具類的封裝我們可以打包成工具包,方便其他服務開發時呼叫,其他服務在pom檔案裡新增依賴即可使用,這個時候pom.xml裡

maven倉庫中手動安裝本地jar的方法

<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-s

Maven打包方法(推薦第

Maven可以使用mvn package指令對專案進行打包,如果使用Java -jar xxx.jar執行執行jar檔案,會出現"no main manifest attribute, in xxx.jar"(沒有設定Main-Class)、ClassNotFoundExce

maven打包方式

方法一:cmd 控制檯打包(比較不推薦)首先安裝maven外掛百度下載一個,配置環境變數什麼的~在cmd控制檯能mvn version能有資料出現。打包只需要到專案的根目錄下~在cmd敲入mvn package.不推薦原因:報錯後的報錯資訊比較不明確。方法二:eclipse或

maven工程pom、jar、war的區別

box enter 訪問 dao class 簡化 管理 pop -c 轉: maven的三種工程pom、jar、war的區別 2018年09月03日 10:02:53 houjx3 閱讀數:2918更多 個人分類: maven

python編程(python開發的運行模式)【轉】

阻塞 data tail 驗證 目錄 pro 什麽 read bus 轉自:http://blog.csdn.net/feixiaoxing/article/details/53980886 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 目錄(?)[-]

調用類的方式

set div sharp csharp true ren light setname clas 1.T t; Teacher teach ;//T t = new T t(); teach.SetName("lizl"); teach.Say(); 2 *t T

codevs 2924 數獨挑戰 x(做法+超詳細註釋~)

是否 初始化 cst next using 最大 pos 描述 name 2924 數獨挑戰 時間限制: 1 s 空間限制: 1000 KB 題目等級 : 鉆石 Diamond

同一功能不同實現方式你選哪個

img com png 指令 con 段落 gin 表示 alt 例題一枚:在input框中輸入內容,會相應的顯示在下面的div中的不同做法: <!DOCTYPE html> <html> <head> &

通過fsharp 使用Enterprise Library Unity 3 - 攔截模式的探索

clean stc ane adding clas 是什麽 idc 內部函數 ash 這篇就三種攔截模式進行一下探索。 特性總結 類型 特點 其它 InterfaceInter

集合的遍歷方式

叠代器 whl print 循環 下一個 sys 三種 iterator for 1、for循環 代碼實現: for(int i=0;i<list.size();i++){ product p=list.get(i); System.println(p); } 2、叠