[英]What are the URLs of all the Maven Archetype catalogs that you know about?
Maven Archetypes是“模板”,通過它您可以快速生成給定框架或項目類型的運行示例。 我正在嘗試編譯當前在網上活動的所有Maven原型目錄的列表。
關於原型的知識存儲在目錄中。
目錄是xml文件。
Archetype插件捆綁了內部目錄。 默認情況下使用此選項。
Archetype插件可以使用本地文件系統和HTTP連接中的目錄。
到目前為止,我已經收集了這個發布目錄的存儲庫列表,但是很想知道是否有人知道更多:
mvn archetype:generate
-DarchetypeCatalog=local
-DarchetypeCatalog=remote
-DarchetypeCatalog=http://repo.fusesource.com/maven2
-DarchetypeCatalog=http://cocoon.apache.org
-DarchetypeCatalog=http://download.java.net/maven/2
-DarchetypeCatalog=http://myfaces.apache.org
-DarchetypeCatalog=http://tapestry.formos.com/maven-repository
-DarchetypeCatalog=http://scala-tools.org
-DarchetypeCatalog=http://www.terracotta.org/download/reflector/maven2/
鏈接到相同的:1) FuseSource 2) Cocoon 3) Java.net 4) MyFaces 5) Tapestry 6) Scala目錄 7) Terracotta目錄
您會注意到,如果存儲庫實際發布了原型目錄(以上所有內容),您將獲得該archetype-catalog.xml
找到的所有選項的UI提示。 例如:
mvn archetype:generate -DarchetypeCatalog=http://scala-tools.org
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
Choose archetype:
1: http://scala-tools.org -> scala-archetype-simple (A simple scala project)
2: http://scala-tools.org -> lift-archetype-blank (A blank/empty liftweb project)
3: http://scala-tools.org -> lift-archetype-basic (A basic liftweb project (with DB, css, ...))
Choose a number: (1/2/3):
例如,如果要直接查看Scala目錄文件,可以瀏覽到http://scala-tools.org/archetype-catalog.xml
但是如果存儲庫沒有提供archetype-catalog.xml,那么就像PascalT所說的那樣,你需要提前知道名稱(更不方便)並在命令行參數中傳遞它。
說實話,我並沒有真正看到建立所有目錄列表的重點。
對我來說,首先選擇項目然后根據需要添加目錄看起來更“自然”。
這就是為什么IMO在原型列表中有更多價值的原因。
即使您在列表中包含所有目錄,您仍然需要他們的名字。
無論如何,這里有一些候選人;
編輯:在馬修澄清原型的目錄之后。
我誤解了一些概念,我的回答並不明確和正確。
目錄的要點就是不必提前知道原型的名稱 。 它們用於發布原型並允許mvn archetype:generate
列出原型。 因此,在使用mvn archetype:generate
時,添加“外部”目錄(不在內部理解)以獲得更廣泛的已知原型列表是有意義的。
對於沒有目錄的原型,用戶必須鍵入一個必須在某處記錄的可怕命令(因為它需要知道該工件)。
關於我的主張:
Atlassian的原型在內部目錄中。 不是一個好主意。
Grails原型不在內部目錄或已發布的archetype-catalog.xml
。 不是一個好主意。
ServiceMix在此處有目錄http://servicemix.apache.org/tooling/ (基於http://servicemix.apache.org/tooling/<version>/archetype-catalog.xml
模式)。 有效的主張。
在挖掘這個時我學到了一件有趣的事情。 maven人提供了一個很好的工具,幫助人們開發原型來創建目錄XML: archetype:crawl
目標基本上抓取本地Maven存儲庫搜索Archetypes並生成/更新~/.m2/repository
的archetype-catalog.xml
文件默認情況下。 項目,人們只需定期運行如下:
mvn archetype:crawl -Dcatalog=/var/www/html/archetype-catalog.xml
Grails不提供目錄。 要創建項目, 我們必須運行 :
mvn org.apache.maven.plugins:maven-archetype-plugin:2.0-alpha-4:generate -DarchetypeGroupId=org.grails \
-DarchetypeArtifactId=grails-maven-archetype \
-DarchetypeVersion=1.0 \
-DarchetypeRepository=http://snapshots.repository.codehaus.org \
-DgroupId=example -DartifactId=my-app
但是一旦我們這樣做了,我們在本地存儲庫中就有了原型。 所以,如果我們輸入:
mvn archetype:crawl -Dcatalog=/home/<me>/.m2/archetype-catalog.xml
原型列在~/.m2/archetype-catalog.xml
,我們現在也可以使用mvn archetype:generate
for Grails(參見選項5):
mvn archetype:generate
...
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
Choose archetype:
1: local -> maven-archetype-archetype (archetype)
2: local -> maven-archetype-j2ee-simple (j2ee)
3: local -> maven-archetype-quickstart (quickstart)
4: local -> maven-archetype-webapp (webapp)
5: local -> grails-maven-archetype (maven-project)
6: internal -> appfuse-basic-jsf (AppFuse archetype for creating a web application with Hibernate, Spring and JSF)
...
這當然是一個(丑陋的)解決方法,它可能有副作用(你不會看到新版本的原型)。 實際上,我不認為原型:抓取目標是用於此用途。 我希望所有項目都能發布他們的原型。
有關Maven Archetype列表,請參閱此鏈接http://www.myjeeva.com/2012/06/exclusive-maven-archetype-list/ (您將找到大約607個Archetypes)。
在使用mvn archetype:generate
命令時, Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 197:
從上面的鏈接提供原型號碼 。
注意:默認值為197
由Nexus生成並由M2eclipse使用的nexus索引知道所有原型,並允許您在從ide創建新的maven項目時選擇它們。
兵馬俑有一個,但我不知道手中的網址...會回復。 此外,我過去使用過AppFuse ( http://static.appfuse.org/releases/ )和Webtide的原型,雖然我不知道在哪里可以找到他們的原型目錄。
Terracotta存儲庫和目錄在這里: http : //www.terracotta.org/download/reflector/maven2/
也許這很有用: http : //docs.codehaus.org/display/MAVENUSER/Archetypes+List
Codehaus還有另一個資源,可以在網上找到一個非常強大的原型列表。 http://docs.codehaus.org/display/MAVENUSER/Archetypes+List
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.