你知道的所有Maven Archetype目录的URL是什么?
Maven Archetypes是可以快速生成给定框架或项目types的运行示例的“模板”。 我试图编译一个列表,当前在网上活动的所有Maven原型目录。
从关于目录文件的Maven文档 :
有关原型的知识存储在目录中。
目录是xml文件。
原型插件捆绑了一个内部目录。 这个是默认使用的。
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) 挂毯 6) Scala目录 7) 兵马俑目录
您会注意到,如果存储库实际上发布了一个原型目录(以上都是这样),那么您将得到一个在该archetype-catalog.xml
find的所有选项的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所说,你需要事先知道这个名字(不太方便),并将它传递给命令行参数。
说实话,我并没有真正看到build立所有目录清单的重点。 对我来说,先select一个项目,然后根据需要添加目录看起来更“自然”。 这就是IMO在原型列表中更有价值的原因。 无论如何,即使列表中的所有目录都需要他们的名字。
无论如何,这里有一些候选人。
- Grails在http://snapshots.repository.codehaus.org/中有原型。;
- Atlassian在https://maven.atlassian.com/repository/public/中有原型;
编辑:马修澄清原型的目录后。
我误解了一些概念,我的回答并不清楚和正确。
目录的要点恰恰是不必事先知道原型的名称 。 它们被用来发布原型并允许mvn archetype:generate
以列出原型。 因此,在使用mvn archetype:generate
时,添加“外部”目录(理解不在内部)以获取更广泛的已知原型列表是有意义的。
对于没有目录的原型,用户必须input一个可怕的命令,这个命令必须logging在某个地方(因为它需要知道这个神器)。
关于我的主张:
-
Atlassian的原型在内部目录中。 不是一个好主张。
-
Grails原型不在内部目录或已发布的
archetype-catalog.xml
。 不是一个好主张。 -
ServiceMix的目录是http://servicemix.apache.org/tooling/ (基于
http://servicemix.apache.org/tooling/<version>/archetype-catalog.xml
模式)。 有效的命题。
我挖掘这件事时学到了一件有趣的事情。 Maven提供了一个很好的工具来帮助开发原型的人创build一个目录XML: archetype:crawl
目标基本上爬行一个本地Maven仓库searchArchetypes并且生成/更新~/.m2/repository
的archetype-catalog.xml
文件默认。 项目,人们必须定期运行如下:
mvn archetype:crawl -Dcatalog = / var / www / html / archetype-catalog.xml
Grails不提供目录。 要创build一个项目, 我们必须运行 :
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
但是一旦我们做到了这一点,我们就有了我们本地存储库中的原型。 所以如果我们input:
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) ...
这当然是一个(丑陋的)解决方法,它可能有副作用(你不会看到新版本的原型)。 其实,我不认为这个原型:爬行目标是为了这个用途。 我希望所有项目都能发表他们的原型。
兵马俑有一个,但我不知道现在的url…将张贴回来。 此外,我从AppFuse ( http://static.appfuse.org/releases/ )和Webtide中使用了原型,尽pipe我不知道在哪里可以find它们的原型目录。
兵马俑库和目录在这里: http : //www.terracotta.org/download/reflector/maven2/
也许这是有用的: http : //docs.codehaus.org/display/MAVENUSER/Archetypes+List
由Nexus生成并由M2eclipse使用的nexus索引知道所有的原型,并让你在ide创build一个新的maven项目时select它们。
对于Maven Archetype列表,请参阅此链接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项目示例的原型)
Codehaus还有另外一个资源,在网上有一个非常强大的原型列表。 http://docs.codehaus.org/display/MAVENUSER/Archetypes+List