您知道的所有Maven Archetype目录的URL是什么?

时间:2009-03-11 17:24:32

标签: java maven-2 maven-plugin maven-archetype

Maven Archetypes是“模板”,通过它您可以快速生成给定框架或项目类型的运行示例。我正在尝试编译当前在网上活动的所有Maven原型目录的列表。

From the Maven documentation about catalog files

  

存储有关原型的知识   在目录中。

     

目录是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 Catalog 7)Terracotta Catalog

您会注意到,如果存储库实际发布了原型目录(以上所有内容),您将获得该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目录文件,可以browse to http://scala-tools.org/archetype-catalog.xml

但是如果存储库没有提供archetype-catalog.xml,那么就像PascalT所说的那样,你需要提前知道名称(更不方便)并在命令行参数中传递它。

5 个答案:

答案 0 :(得分:16)

说实话,我真的没有看到建立所有目录列表的重点。对我来说,首先选择项目然后根据需要添加目录看起来更“自然”。这就是为什么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并生成/更新archetype-catalog.xml文件~/.m2/repository } 默认情况下。项目,人们只需要定期运行:

mvn archetype:crawl -Dcatalog=/var/www/html/archetype-catalog.xml

Grails不提供目录。要创建项目,we have to run

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作为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)
...

这当然是一个(丑陋的)解决方法,它可能有副作用(你不会看到新版本的原型)。实际上,我不认为原型:抓取目标是用于此用途。我希望所有项目都能发布他们的原型。

答案 1 :(得分:2)

对于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

  • 197 - &gt; org.apache.maven.archetypes:maven-archetype-quickstart(包含示例Maven项目的原型。)

答案 2 :(得分:1)

Terracotta有一个,但我不知道手中的网址...会回复。此外,我过去使用了AppFusehttp://static.appfuse.org/releases/)和Webtide的原型,尽管我不知道在哪里可以找到他们的原型目录。

Terracotta存储库和目录位于:http://www.terracotta.org/download/reflector/maven2/

也许这很有用: http://docs.codehaus.org/display/MAVENUSER/Archetypes+List

答案 3 :(得分:1)

由Nexus生成并由M2eclipse使用的nexus索引知道所有原型,并允许您在从ide创建新的maven项目时选择它们。

答案 4 :(得分:0)

Codehaus还有另一个资源,可以在网上找到一份非常强大的原型列表。 http://docs.codehaus.org/display/MAVENUSER/Archetypes+List