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

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

从 Maven 文档中关于目录文件

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

目录是 xml 文件。

原型插件与内部目录捆绑在一起。默认情况下使用这个。

原型插件可以使用来自本地文件系统和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

您会注意到,如果存储库实际上发布了原型目录(上述所有内容都这样做),您将收到一个 UI 提示,其中包含在该目录中找到的所有选项。例如:archetype-catalog.xml

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

但是,如果存储库没有提供原型目录.xml,那么正如PascalT所说,您需要提前知道名称(不太方便),并将其传递到命令行参数中。


答案 1

说实话,我真的不认为建立所有目录的列表有什么意义。对我来说,首先选择一个项目,然后根据需要添加目录,看起来更“自然”。这就是为什么IMO在原型列表中有更多的价值。无论如何,您都需要他们的名字,即使您在列表中有所有目录。

无论如何,这里有一些候选人;

编辑:在马修澄清原型目录之后。

我误解了一些概念,我的答案不清楚和正确。

目录的要点恰恰是不必事先知道原型的名称。它们用于发布原型并允许列出原型。因此,在使用 时,添加“外部”目录(理解不是在内部)以获得更广泛的已知原型列表是有意义的。mvn archetype:generatemvn archetype:generate

对于没有目录的原型,用户必须键入一个必须在某处记录的可怕命令(因为它需要了解工件)。

关于我的主张:

  • Atlassian的原型在内部目录中。这不是一个好命题。

  • 圣杯原型不在内部目录或已发布的.这不是一个好命题。archetype-catalog.xml

  • ServiceMix 在这里有目录 http://servicemix.apache.org/tooling/(基于模式)。有效的命题。http://servicemix.apache.org/tooling/<version>/archetype-catalog.xml


我在挖掘这个时学到的一件有趣的事情。Maven Guys提供了一个很好的工具,可以帮助开发原型的人创建目录XML:目标基本上是在本地Maven存储库中爬网搜索原型,并默认生成/更新文件。项目,人们只需要定期运行如下内容:archetype:crawlarchetype-catalog.xml~/.m2/repository

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

原型被列在 中,我们现在也可以使用 Grails(参见选项 5):~/.m2/archetype-catalog.xmlmvn archetype:generate

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

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


答案 2

兵马俑有一个,但我不知道手头的网址...将回发。另外,我过去曾使用过AppFusehttp://static.appfuse.org/releases/)和Webtide的原型,尽管我不知道在哪里可以找到它们的原型目录。

兵马俑存储库和目录在这里:http://www.terracotta.org/download/reflector/maven2/

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


推荐