Honestly, I really don't see the point of creating a list of all directories. It seems to me more “natural" to first select a project, and then add a directory, if necessary. This is why IMO values the list of archetypes more. You will still need their name, even if you have all the directories in the list.
In any case, here are some candidates;
Edit: after clarifying Matthew according to archetype catalogs.
I misunderstood some concepts, and my answer is not clear and true.
A directory point does not need to know the names of archetypes in advance . They are made for publishing archetypes and allow mvn archetype:generate list archetypes. Therefore, it makes sense to add "external" directories (do not understand the internal) to get a wider list of known archetypes when using mvn archetype:generate .
For archetypes without a directory, users must enter a terrible command that needs to be documented somewhere (because it requires knowledge of the artifact).
Regarding my suggestions:
Atlas archetypes are in the internal catalog. Not a good offer.
Grails archetypes are not in the internal directory or in the published archetype-catalog.xml . Not a good offer.
ServiceMix contains the http://servicemix.apache.org/tooling/ directories (based on the http://servicemix.apache.org/tooling/<version>/archetype-catalog.xml template). Valid offer.
One fun thing I found out by digging this. The maven guys provide a good tool that helps people develop archetypes for creating an XML catalog: target archetype:crawl basically bypasses the local Maven repository, which is looking for Archetypes, and by default generates / updates the archetype-catalog.xml by ~/.m2/repository . Projects, people just have to periodically run something like:
mvn archetype: crawl -Dcatalog = / var / www / html / archetype-catalog.xml
Grails does not provide a directory. To create a project, we need 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 have done this, we have the archetype in our local repository. Therefore, if we type:
mvn archetype:crawl -Dcatalog=/home/<me>/.m2/archetype-catalog.xml
The archetype appears in ~/.m2/archetype-catalog.xml , and now we can use mvn archetype:generate for Grails (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, of course, is a bypass (bypass) and can have side effects (you will not see new versions of archetypes). Actually, I don't think it's an archetype: the crawl target is for this use. I would like all projects to publish their archetypes.