Domanda

Archetypes Maven sono i " modelli " con il quale è possibile generare rapidamente un esempio corrente di un determinato framework o tipo di progetto. Sto cercando di compilare un elenco di tutti i cataloghi di archetipi Maven attualmente attivi in ??rete.

Dalla documentazione di Maven sui file di catalogo :

  

Le conoscenze sugli archetipi sono archiviate   nei cataloghi.

     

I cataloghi sono file xml.

     

Il plug-in Archetype viene fornito in bundle   con un catalogo interno. Questo è   usato di default.

     

Il plug-in Archetype può utilizzare i cataloghi   dal filesystem locale e da HTTP   connessioni.

Finora ho raccolto questo elenco di repository che pubblicano cataloghi, ma mi piacerebbe vedere se qualcuno ne sa di più:

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/

Collegamenti allo stesso: 1) FuseSource 2) Cocoon 3) Java.net 4) MyFaces 5) Tapestry 6) Catalogo Scala 7) Catalogo di terracotta

Noterai che se il repository pubblica effettivamente un catalogo archetipo (tutto quanto sopra riportato), otterrai un prompt dell'interfaccia utente di tutte le scelte trovate in quel archetype-catalog.xml . Ad esempio:

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

Se si desidera visualizzare direttamente il file del catalogo Scala, ad esempio, è possibile navigare su http: / /scala-tools.org/archetype-catalog.xml

Ma se il repository non fornisce un archetype-catalog.xml, proprio come dice PascalT, dovrai conoscere il nome in anticipo (molto meno conveniente) e passarlo negli argomenti della riga di comando.

È stato utile?

Soluzione

Ad essere sincero, non vedo davvero il punto di costruire un elenco di tutti i cataloghi. Sembra più "naturale" per me scegliere prima un progetto e poi aggiungere il catalogo, se necessario. Questo è il motivo per cui l'IMO ha più valore in un elenco di archetipi. Avrai comunque bisogno del loro nome, anche se hai tutti i cataloghi in un elenco.

Comunque, ecco alcuni candidati;

Modifica: dopo il chiarimento di Matthew sui cataloghi degli archetipi.

Ho frainteso alcuni concetti e la mia risposta non è chiara e corretta.

Il punto dei cataloghi è esattamente non dover conoscere in anticipo i nomi degli archetipi . Sono fatti per pubblicare archetipi e consentire a mvn archetype: generate di elencare gli archetipi. Quindi ha senso aggiungere " esterno " cataloghi (non compreso all'interno) per ottenere un elenco più ampio di archetipi noti quando si utilizza mvn archetype: generate .

Per gli archetipi senza un catalogo, gli utenti devono digitare un comando orribile che deve essere documentato da qualche parte (perché richiede la conoscenza del manufatto).

Per quanto riguarda le mie proposte:

  • Gli archetipi di Atlassian sono nel catalogo interno. Non è una buona proposta.

  • Gli archetipi di Grails non si trovano nel catalogo interno o in un archetype-catalog.xml pubblicato. Non è una buona proposta.

  • ServiceMix ha cataloghi qui http://servicemix.apache.org/tooling/ (basato su un http://servicemix.apache.org/tooling/<version>/ modello archetype-catalog.xml ). Proposta valida.


Una cosa divertente che ho imparato scavando questo. I ragazzi della maven forniscono uno strumento utile che aiuta le persone a sviluppare archetipi per creare un catalogo XML: l'obiettivo archetype: crawl esegue essenzialmente la scansione di un repository Maven locale alla ricerca di archetipi e genera / aggiorna un archetype-catalog .xml in ~ / .m2 / repository per impostazione predefinita. I progetti, le persone devono semplicemente eseguire periodicamente qualcosa del tipo:

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

Grails non fornisce un catalogo. Per creare un progetto, dobbiamo eseguire :

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

Ma una volta fatto questo, abbiamo l'archetipo nel nostro repository locale. Quindi se digitiamo:

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

L'archetipo viene elencato in ~ / .m2 / archetype-catalog.xml e ora possiamo usare mvn archetype: generate anche per Grails (vedi opzione 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)
...

Questa è ovviamente una (enorme) soluzione alternativa e potrebbe avere effetti collaterali (non vedrai nuove versioni di archetipi). In realtà, non credo che l'archetipo: l'obiettivo di scansione sia inteso per questo uso. Vorrei che tutti i progetti pubblicassero i loro archetipi.

Altri suggerimenti

Per l'elenco Archetype Maven fare riferimento a questo link http: // www. myjeeva.com/2012/06/exclusive-maven-archetype-list/ (troverai circa 607 Archetipi).

Durante l'utilizzo di mvn archetype: generate alla domanda di Scegli un numero o applica il filtro (formato: [groupId:] artefactId, case sensitive contiene): 197:

fornisci numero di archetipo dal link sopra.

Nota: il valore predefinito è 197

  • 197 - > org.apache.maven.archetypes: maven-archetype-quickstart (Un archetipo che contiene un progetto Maven di esempio.)

Ne ha uno in terracotta ma non conosco l'url di mano ... riporterò indietro. Inoltre, ho usato archetipi in passato da AppFuse ( http://static.appfuse.org/releases/ ) e Webtide anche se non so dove trovare i loro cataloghi di archetipi.

Il repository e il catalogo di Terracotta sono qui: http://www.terracotta.org/ download / riflettore / maven2 /

Forse questo è utile: http://docs.codehaus.org/display/MAVENUSER/Archetypes+List

L'indice di nexus prodotto da Nexus e consumato da M2eclipse conosce tutti gli archetipi e ti consente di sceglierli quando crei un nuovo progetto maven dall'ide.

C'è ancora un'altra risorsa a Codehaus per un elenco molto solido di archetipi sulla rete. http://docs.codehaus.org/display/MAVENUSER/Archetypes+List

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top