What are the URLs of all the Maven Archetype catalogs that you know about?

巧了我就是萌 提交于 2019-11-29 18:45:12

To be honest, I don't really see the point of building a list of all catalogs. It looks more "natural" to me to pick a project first and then add the catalog if required. This is why there is IMO more value in a list of archetypes. You'll need their name anyway, even if you have all catalogs in a list.

Anyway, here are some candidates;

Edit: after Matthew clarification on archetype's catalogs.

I misunderstood some concepts and my answer isn't clear and correct.

The point of catalogs is exactly to not have to know the names of archetypes in advance. They are made to publish archetypes and allow mvn archetype:generate to list archetypes. So it makes sense to add "external" catalogs (understand not in the internal) to get a wider list of known archetypes when using mvn archetype:generate.

For archetypes without a catalog, users have to type an horrible command that must be documented somewhere (because it requires knowledge of the artifact).

Regarding my propositions:

  • Atlassian's archetypes are in the internal catalog. Not a good proposition.

  • Grails archetypes aren't in the internal catalog or in a published archetype-catalog.xml. Not a good proposition.

  • ServiceMix has catalogs here http://servicemix.apache.org/tooling/ (based on a http://servicemix.apache.org/tooling/<version>/archetype-catalog.xml pattern). Valid proposition.


One fun thing I learned while digging this. The maven guys provides a nice tool that helps people developing archetypes to create a catalog XML: the archetype:crawl goal basically crawls a local Maven repository searching for Archetypes and generates/updates a archetype-catalog.xml file in ~/.m2/repository by default. Projects, people just have to run periodically something like:

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

Grails doesn't provide a catalog. To create a project, 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

But once we did this, we have the archetype in our local repository. So if we type:

mvn archetype:crawl -Dcatalog=/home/<me>/.m2/archetype-catalog.xml

The archetype get listed in ~/.m2/archetype-catalog.xml and we can now use the mvn archetype:generate for Grails too (see option 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)
...

This is of course a (hugly) workaround and it might have side effects (you won't see new versions of archetypes). Actually, I don't think the archetype:crawl goal is intended for this use. I would like all projects them to publish their archetypes.

For Maven Archetype list refer this link http://www.myjeeva.com/2012/06/exclusive-maven-archetype-list/ (you will find around 607 Archetypes).

While using mvn archetype:generate command at question of Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 197:

provide archetype number from above link.

Note: default value is 197

  • 197 -> org.apache.maven.archetypes:maven-archetype-quickstart (An archetype which contains a sample Maven project.)

Terracotta has one but I don't know the url off-hand...will post back. Also, I have used archetypes in the past from AppFuse (http://static.appfuse.org/releases/) and Webtide although I don't know where to find their archetype catalogs.

The Terracotta repository and catalog are here: http://www.terracotta.org/download/reflector/maven2/

Perhaps this is useful: http://docs.codehaus.org/display/MAVENUSER/Archetypes+List

The nexus index that is produced by Nexus and consumed by M2eclipse knows about all the archetypes and lets you choose them when you create a new maven project from the ide.

There's yet another resource at Codehaus for a very robust list of archetypes out there on the 'net. http://docs.codehaus.org/display/MAVENUSER/Archetypes+List

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!