45

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

从有关目录文件的 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 目录

您会注意到,如果存储库实际上发布了一个原型目录(以上所有内容都这样做),您将获得一个 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

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

4

5 回答 5

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 存储库以搜索原型并默认生成/更新archetype-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

原型被列出,~/.m2/archetype-catalog.xml我们现在也可以使用mvn archetype:generatefor 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)
...

这当然是一个(非常好的)解决方法,它可能会产生副作用(你不会看到新版本的原型)。实际上,我不认为 archetype:crawl 目标是为此用途而设计的。我希望所有项目都发布他们的原型。

于 2009-03-13T05:24:23.210 回答
1

兵马俑有一个,但我不知道 URL 副手...会发回。此外,我过去曾使用过AppFuse ( http://static.appfuse.org/releases/ ) 和Webtide的原型,尽管我不知道在哪里可以找到它们的原型目录。

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

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

于 2009-03-13T04:34:58.383 回答
1

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

于 2009-07-16T12:30:48.630 回答
1

对于 Maven 原型列表,请参阅此链接http://www.myjeeva.com/2012/06/exclusive-maven-archetype-list/(您会发现大约 607 个原型)。

在使用mvn archetype:generate命令时Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 197:

从上面的链接提供原型编号。

注意:默认值为 197

  • 197 -> org.apache.maven.archetypes:maven-archetype-quickstart (包含示例 Maven 项目的原型。)
于 2012-07-01T06:19:13.950 回答
0

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

于 2010-02-05T22:47:53.010 回答