《Maven官方文件》什麼是原型(Archrtype)?
什麼是原型?
簡單來說,原型(Archetype)是一個Maven工程模板工具包。一個原型被定義為一個提供相同性質內容的原始樣式或模型。這個名字適合當我們試圖提供一個系統,這個系統提供了一個一致的方式生成Maven專案。原型將幫助作者為使用者建立Maven工程模板,並且為使用者提供方法去使用引數來調整生成的工程模板。
使用原型提供了一個很好的方式,使開發人員快速的符合你的專案或組織的最佳實踐,在Maven專案中,我們提供了一個演示了Maven多種特性的示例工程,以此希望幫助我們的使用者儘快的啟動並執行,同時引導新使用者使用Maven的最佳實踐。幾秒之內,新使用者就可以使用Maven專案工作,並以此為跳板瞭解Maven的更多的特性。我們也試著去為原型加入可新增機制,通過這種方法允許工程的一部分被一個原型捕獲,來使這一部分工程能夠直接加入的另一個已經存在的工程。這方面一個比較好的例子是Maven site archetype。舉個例子,如果你已經用quick start原型生成了一個工程,你同樣能通過在已存在的工程中使用site archetype來快速的生成一個這個工程的站點。你可以用原型來做任何像這樣的事情。
可能你想在你的組織中標準化J2EE開發,於是你想去提供EJBs或WARs的原型,或者為你的web服務提供原型。當這些原型建立並應用到你的組織的倉庫裡,它們就可以被你組織裡的所有開發者使用了。
使用Archetype
基於Archetype來建立一個新工程,你只需要呼叫 mvn archetype:generate目標,就像這樣:
mvn archetype:generate
譯者注: mvn archetype:generate 命令會從遠端拉取所有的原型(大約1575個)供你選擇,使用-DarchetypeArtifavtId=[archetype]引數可以指定archetype型別。如果卡在Generating project in Interactive mode這一步,是因為maven在從遠端拉取資訊,使用 -DarchetypeCatalog=internal 引數讓它不要從遠端伺服器上取catalog。
可供使用的Archetype
Maven提供了一些可用的Archetype:
Archetype ArtifactIds | Description |
---|---|
maven-archetype-archetype | 生成一個示例原型工程 |
maven-archetype-j2ee-simple | 生成一個簡單的J2EE應用示例 |
maven-archetype-mojo | 生成Maven Plugin 例子的示例 |
maven-archetype-plugin | 生成Maven Plugin示例 |
maven-archetype-plugin-site | 生成Maven Plugin site示例 |
maven-archetype-portlet | 生成JSR-268元件示例 |
maven-archetype-quickstart | 生成Maven Quickstart工程示例 |
maven-archetype-simple | 生成一個簡單的Maven工程 |
maven-archetype-site | 生成一個展示可支援的格式的文件的站點,例如 APT, XDoc, FML, 並且展示如何國際化你的站點。 |
maven-archetype-site-simple | 生成一個Maven site 示例 |
maven-archetype-webapp | 生成Maven Webapp工程示例 |
原型的構成
原型被打包成一個JAR,原型由描述原型內容的原型元資料(archetypr metadata)和一系列建立原始工程的Velocity模板組成。如果你想了解如何建立你自己的原型,請參考Guide to creating archetypes。