Question

Les archétypes Maven sont les " modèles " vous permettant de générer rapidement un exemple en cours d’exécution d’une structure ou d’un type de projet donné. J'essaie de compiler une liste de tous les catalogues d'archétype Maven actuellement actifs sur le réseau.

Extrait de 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   du système de fichiers local et du HTTP   connexions.

Jusqu'à présent, j'ai rassemblé cette liste de référentiels qui publient des catalogues, mais j'aimerais bien 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 (toutes les opérations ci-dessus le sont), 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 accéder à http: / /scala-tools.org/archetype-catalog.xml

Mais si le référentiel ne fournit pas un archetype-catalog.xml, comme le dit PascalT, vous aurez besoin de connaître le nom à l'avance (beaucoup moins pratique) et de le transmettre dans les arguments de ligne de commande.

Était-ce utile?

La solution

Pour être honnête, je ne vois pas vraiment l'intérêt de construire une liste de tous les catalogues. Il semble plus & naturel; naturel " à moi 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. De toute façon, vous aurez besoin de leur nom, même si tous les catalogues sont 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 précisément de ne pas avoir à connaître le nom des archétypes à l'avance . Ils sont conçus pour publier des archétypes et permettent à mvn archetype: generate de répertorier les archétypes. Il est donc logique d’ajouter "externe". catalogues (comprendre non dans l’interne) pour obtenir une liste plus étendue des archétypes connus lorsqu’on utilise mvn archetype: generate .

Pour les archétypes sans catalogue, les utilisateurs doivent taper une horrible commande 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 sont dans le catalogue interne. Ce n'est pas une bonne proposition.

  • Les archétypes Grails ne figurent pas dans le catalogue interne ni dans un archetype-catalog.xml publié . Ce n'est pas une bonne proposition.

  • ServiceMix contient des catalogues ici http://servicemix.apache.org/tooling/ (basé sur un http://servicemix.apache.org/tooling/<version>/ archetype-catalog.xml ). Proposition valable.

Une chose amusante que j'ai apprise en creusant cela. Maven guy fournit un outil pratique qui aide les personnes qui développent 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 catalogue archetype Fichier .xml dans ~ / .m2 / repository par défaut. Les projets, les gens doivent juste exécuter périodiquement quelque chose comme:

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

Grails ne fournit pas de catalogue. Pour créer un projet, nous devons exécuter :

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)
...

C’est bien sûr une solution de contournement (énorme) qui peut 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. Je souhaite que tous les projets publient leurs archétypes.

Autres conseils

Pour la liste des archétypes Maven, reportez-vous à ce lien http: // www. myjeeva.com/2012/06/exclusive-maven-archetype-list/ (vous trouverez environ 607 archétypes).

Lors de l’utilisation de la commande mvn archetype: generate à la question de Choisir un nombre ou appliquer un filtre (format: [groupId:], artefactId, sensible à la casse): 197:

fournissez le numéro d'archétype à partir du lien ci-dessus.

Remarque: la valeur par défaut est 197

  • 197 - > org.apache.maven.archetypes: maven-archetype-quickstart (archétype contenant un exemple de projet Maven.)

Terracotta en a un, mais je ne sais pas si l’URL est sous la main. De plus, j’ai utilisé des archétypes de AppFuse ( http://static.appfuse.org/releases/ ) et Webtide bien que je ne sache pas où trouver leurs catalogues d'archétype.

Le référentiel et le catalogue Terracotta se trouvent ici: http://www.terracotta.org/ téléchargement / réflecteur / maven2 /

C'est peut-être utile: http://docs.codehaus.org/display/MAVENUSER/Archetypes+List

L'index 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 l'ide.

Il existe encore une autre ressource chez Codehaus pour une liste très robuste d’archétypes sur le net. http://docs.codehaus.org/display/MAVENUSER/Archetypes+List

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top