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所说的那样,你需要提前知道名称(更不方便)并在命令行参数中传递它。
答案 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
答案 2 :(得分:1)
Terracotta有一个,但我不知道手中的网址...会回复。此外,我过去使用了AppFuse(http://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