it-swarm.com.de

Wie lauten die URLs aller Maven Archetype-Kataloge, die Sie kennen?

Maven Archetypes sind die "Vorlagen", mit denen Sie schnell ein laufendes Beispiel für einen bestimmten Framework- oder Projekttyp erstellen können. Ich versuche, eine Liste aller im Netz aktiven Maven-Archetypenkataloge zu erstellen.

Aus der Maven-Dokumentation zu Katalogdateien :

Das Wissen über Archetypen wird gespeichert in Katalogen.

Die Kataloge sind XML-Dateien.

Das Archetype Plugin wird mit .__ geliefert. mit einem internen Katalog. Dieser ist standardmäßig verwendet.

Das Archetype Plugin kann Kataloge verwenden vom lokalen Dateisystem und von HTTP Verbindungen.

Bisher habe ich diese Liste von Repositories zusammengestellt, die Kataloge veröffentlichen, aber ich würde gerne sehen, ob jemand mehr weiß:

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/

Verknüpfungen zu demselben: 1) FuseSource 2) Cocoon 3) Java.net 4) MyFaces 5 ) Tapisserie 6) Scala-Katalog 7) Terrakotta-Katalog

Sie werden feststellen, dass, wenn das Repository tatsächlich einen Archetypenkatalog veröffentlicht (alle oben genannten), Sie eine UI-Eingabeaufforderung aller in diesem archetype-catalog.xml gefundenen Optionen erhalten. Zum Beispiel:

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

Wenn Sie beispielsweise die Scala-Katalogdatei direkt anzeigen möchten, können Sie zu http://scala-tools.org/archetype-catalog.xml wechseln

Wenn das Repository jedoch keine archetype-catalog.xml bereitstellt, müssen Sie, wie PascalT sagt, den Namen im Voraus kennen (viel ungünstiger) und in Befehlszeilenargumenten übergeben.

43

Um ehrlich zu sein, sehe ich nicht den Sinn, eine Liste aller Kataloge zu erstellen. Es erscheint mir "natürlicher", zuerst ein Projekt auszuwählen und dann den Katalog hinzuzufügen, wenn dies erforderlich ist. Deshalb hat IMO mehr Wert in einer Liste von Archetypen. Sie benötigen ihren Namen trotzdem, auch wenn Sie alle Kataloge in einer Liste haben.

Wie auch immer, hier sind einige Kandidaten;

Edit: nach Matthäus Klärung der Kataloge der Archetypen.

Ich habe einige Begriffe falsch verstanden und meine Antwort ist nicht klar und richtig.

Bei Katalogen geht es genau um die Namen der Archetypen müssen nicht im Voraus bekannt sein. Sie dienen dazu, Archetypen zu veröffentlichen, und ermöglichen mvn archetype:generate, Archetypen aufzulisten. Daher ist es sinnvoll, "externe" Kataloge hinzuzufügen (Verständnis nicht im internen), um bei Verwendung von mvn archetype:generate eine breitere Liste bekannter Archetypen zu erhalten.

Für Archetypen ohne Katalog muss der Benutzer einen schrecklichen Befehl eingeben, der irgendwo dokumentiert werden muss (da er Kenntnis des Artefakts erfordert).

Zu meinen Vorschlägen:

  • Atlassians Archetypen befinden sich im internen Katalog. Kein guter Vorschlag.

  • Grails-Archetypen befinden sich weder im internen Katalog noch in einem veröffentlichten archetype-catalog.xml. Kein guter Vorschlag.

  • ServiceMix hat Kataloge hier http://servicemix.Apache.org/tooling/ (basierend auf einem http://servicemix.Apache.org/tooling/<version>/archetype-catalog.xml-Muster). Gültiger Vorschlag.


Eine lustige Sache, die ich beim Graben gelernt habe. Die Maven-Jungs bieten ein Nizza-Tool, das Benutzern hilft, Archetypen zu entwickeln, um eine Katalog-XML zu erstellen: Das archetype:crawl-Ziel durchsucht im Wesentlichen ein lokales Maven-Repository, das nach Archetypes sucht, und generiert/aktualisiert standardmäßig eine archetype-catalog.xml-Datei in ~/.m2/repository. Projekte, die Leute müssen nur periodisch laufen, etwa wie:

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

Sobald wir dies getan haben, haben wir den Archetyp in unserem lokalen Repository. Wenn wir also schreiben: 

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

Der Archetyp wird in ~/.m2/archetype-catalog.xml aufgelistet und wir können den mvn archetype:generate jetzt auch für Grails verwenden (siehe 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)
...

Dies ist natürlich eine (äußerst) Problemumgehung, die möglicherweise Nebenwirkungen hat (neue Versionen von Archetypen werden nicht angezeigt). Eigentlich glaube ich nicht, dass der Archetyp: Crawl-Ziel für diese Verwendung gedacht ist. Ich möchte, dass alle Projekte ihre Archetypen veröffentlichen.

16
Pascal Thivent

Für die Maven-Archetyp-Liste verweisen Sie auf diesen Link http://www.myjeeva.com/2012/06/exclusive-maven-archetype-list/ (Sie werden ca. 607 Archetypen finden). 

Bei Verwendung des mvn archetype:generate-Befehls bei der Frage von Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 197: 

geben Sie die archetype-Nummer über den Link oben ein.

Hinweis: Standardwert ist 197

  • 197 -> org.Apache.maven.archetypes: maven-archetype-quickstart (Ein Archetyp, der ein Maven-Beispielprojekt enthält.)}
2
jeevatkm

Der Nexus-Index, der von Nexus erstellt und von M2Eclipse verwendet wird, kennt alle Archetypen und lässt Sie auswählen, wenn Sie ein neues Maven-Projekt aus der ide erstellen.

1
Brian Fox

Terrakotta hat eine, aber ich weiß nicht, ob die URL abgehakt wird ... wird zurückschicken. Außerdem habe ich in der Vergangenheit Archetypen aus AppFuse ( http://static.appfuse.org/releases/ ) und Webtide verwendet, obwohl ich nicht weiß, wo ich ihren Archetyp finden kann Kataloge. 

Das Terracotta-Repository und der Katalog sind hier: http://www.terracotta.org/download/reflector/maven2/

Vielleicht ist dies nützlich: http://docs.codehaus.org/display/MAVENUSER/Archetypes+List

1
Alex Miller

Es gibt noch eine weitere Quelle in Codehaus für eine sehr robuste Liste von Archetypen auf dem 'net . http://docs.codehaus.org/display/MAVENUSER/Archetypes+List .

0