Les archétypes Maven sont les "modèles" grâce auxquels vous pouvez générer rapidement un exemple en cours d’exécution d’un type de framework ou de projet donné. J'essaie de compiler une liste de tous les catalogues d'archétype Maven actuellement actifs sur le réseau.
Dans la documentation Maven sur les fichiers de catalogue :
Les connaissances sur les archétypes sont stockées dans les catalogues.
Les catalogues sont des fichiers XML.
Le plugin Archetype est fourni avec un catalogue interne. Celui-ci est utilisé par défaut.
Le plugin Archetype peut utiliser des catalogues à partir du système de fichiers local et de HTTP les liaisons.
Jusqu'à présent, j'ai rassemblé cette liste de référentiels qui publient des catalogues, mais j'aimerais voir si quelqu'un en sait plus:
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/
Liens vers le même: 1) FuseSource 2) Cocoon 3) Java.net 4) MyFaces 5 ) Tapisserie 6) Catalogue Scala 7) Catalogue en terre cuite
Vous remarquerez que si le référentiel publie en réalité un catalogue d'archétype (tout ce que ci-dessus fait), vous obtenez une invite d'interface utilisateur avec tous les choix trouvés dans ce archetype-catalog.xml
. Par exemple:
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):
Si vous souhaitez afficher le fichier de catalogue Scala directement, par exemple, vous pouvez naviguer jusqu'à http://scala-tools.org/archetype-catalog.xml
Mais si le référentiel ne fournit pas un fichier archetype-catalog.xml, comme le dit PascalT, vous devez connaître le nom à l'avance (beaucoup moins pratique) et le transmettre dans les arguments de la ligne de commande.
Pour être honnête, je ne vois pas vraiment l'intérêt de construire une liste de tous les catalogues. Il me semble plus "naturel" de choisir un projet d'abord, puis d'ajouter le catalogue si nécessaire. C’est pourquoi l’OMI a plus de valeur dans une liste d’archétypes. Vous aurez besoin de leur nom quand même, même si vous avez tous les catalogues dans une liste.
Quoi qu'il en soit, voici quelques candidats.
Edit: après la clarification de Matthew sur les catalogues de l'archétype.
J'ai mal compris certains concepts et ma réponse n'est pas claire et correcte.
Le but des catalogues est exactement de pas besoin de connaître le nom des archétypes à l’avance}. Ils sont conçus pour publier des archétypes et permettent à mvn archetype:generate
de les répertorier. Il est donc logique d’ajouter des catalogues "externes" (ne pas comprendre à l’interne) pour obtenir une liste plus étendue des archétypes connus lors de l’utilisation de mvn archetype:generate
.
Pour les archétypes sans catalogue, les utilisateurs doivent taper une commande horrible qui doit être documentée quelque part (car elle nécessite une connaissance de l'artefact).
En ce qui concerne mes propositions:
Les archétypes d'Atlassian figurent dans le catalogue interne. Pas une bonne proposition.
Les archétypes de Grails ne figurent ni dans le catalogue interne ni dans un archetype-catalog.xml
publié. Pas une bonne proposition.
ServiceMix a des catalogues ici http://servicemix.Apache.org/tooling/ (basé sur un modèle http://servicemix.Apache.org/tooling/<version>/archetype-catalog.xml
). Proposition valide.
Une chose amusante que j'ai apprise en creusant cela. Maven guy fournit un outil Nice qui aide les personnes développant des archétypes à créer un catalogue XML: l’objectif archetype:crawl
analyse en gros un référentiel Maven local à la recherche d’archétypes et génère/met à jour un fichier archetype-catalog.xml
dans ~/.m2/repository
par défaut. Les projets, les gens doivent juste exécuter périodiquement quelque chose comme:
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
Mais une fois que nous avons fait cela, nous avons l'archétype dans notre référentiel local. Donc si on tape:
mvn archetype:crawl -Dcatalog=/home/<me>/.m2/archetype-catalog.xml
L'archétype est répertorié dans ~/.m2/archetype-catalog.xml
et nous pouvons maintenant utiliser le mvn archetype:generate
pour Grails également (voir 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)
...
Il s’agit bien entendu d’une solution de contournement (énorme) qui risque d’avoir des effets secondaires (vous ne verrez pas de nouvelles versions des archétypes). En fait, je ne pense pas que l'archétype: objectif d'analyse est destiné à cet usage. J'aimerais que tous les projets publient leurs archétypes.
Pour la liste des archétypes Maven, référez-vous à ce lien http://www.myjeeva.com/2012/06/exclusive-maven-archetype-list/ (vous trouverez environ 607 Archétypes).
En utilisant la commande mvn archetype:generate
à la question de Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 197:
fournissez numéro d'archétype à partir du lien ci-dessus.
Note: la valeur par défaut est 197
L’indice de lien généré par Nexus et consommé par M2Eclipse connaît tous les archétypes et vous permet de les choisir lorsque vous créez un nouveau projet maven à partir de ide.
La terre cuite en a une mais je ne sais pas si l’URL est sous la main ... sera postée. En outre, j’ai utilisé des archétypes dans le passé de AppFuse ( http://static.appfuse.org/releases/ ) et Webtide bien que je ne sache pas où trouver leur archétype. catalogues.
Le référentiel et le catalogue Terracotta se trouvent ici: http://www.terracotta.org/download/reflector/maven2/
C'est peut-être utile: http://docs.codehaus.org/display/MAVENUSER/Archetypes+List
Il existe encore une autre ressource chez Codehaus pour une liste très robuste d’archétypes sur le réseau 'net . http://docs.codehaus.org/display/MAVENUSER/Archetypes+List } _