webentwicklung-frage-antwort-db.com.de

Wie erstelle ich ein Projekt mit Maven-Archetype-Plugin? Was ist ArtefactId usw.?

Ich bin neu bei Maven und nutze das maven.Apache.orgTutorial hier als Einführung.

Im Abschnitt "Wie erstelle ich mein erstes Maven-Projekt?" Des Lernprogramms, lernen wir, ein Maven-Archetypprojekt zu generieren, indem Sie den folgenden Befehl ausführen:

mvn archetype:generate

Nachdem Maven viele Artefakte heruntergeladen hatte, wurde plötzlich angehalten und die folgende Frage gestellt in der Befehlszeile:

Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 149:

Das Apache-Tutorial beschreibt diese Aufforderung nicht.

Ich habe zwei Fragen:

1. Nach was fragt die obige Frage? Wie sollte darauf geantwortet werden, dass der mvn archetype:generate-Prozess fortgesetzt wird?

2. Verwenden Benutzer mvn archetype:generate normalerweise, um ein Maven-Projekt zu erstellen?

-------------- Update ---------------------

In Bezug auf meine erste Frage habe ich die Eingabetaste gedrückt, ohne einen Wert einzugeben, und erhielt folgende Ausgabe:

Choose version: 
1: 1.0-alpha-1
2: 1.0-alpha-2
3: 1.0-alpha-3
4: 1.0-alpha-4
5: 1.0
6: 1.1
Choose a number: 6: 

Was ist das?

Ich habe im obigen Fall "1" eingegeben, dann habe ich folgende Dinge bekommen:

Define value for property 'package':  : :
Define value for property 'groupId': : 
Define value for property 'artifactId': :
...

Wie kann ich sie definieren?

41
Mellon

Der Befehl mvn archetype:generate wird zum Erstellen eines Projekts aus einer vorhandenen Vorlage verwendet. Es gibt mehrere Archetypen, die von vielen Entwicklern und Projektgruppen definiert werden. Wenn Sie den Befehl ausführen, führt maven folgende Schritte aus:

  1. Lädt die neueste Version von maven-archetype-plugin herunter.
  2. Listet alle Archetypen auf, aus denen ein Projekt erstellt werden kann. Wenn Sie beim Aufruf des Befehls einen Archetyp definiert haben, springt maven zu Schritt 4.
  3. Standardmäßig wählt maven den Archetyp maven-archetype-quickstart, der im Wesentlichen ein Hello World -Projekt mit Quell- und Testklassen erstellt. Wenn Sie ein einfaches Projekt erstellen möchten, drücken Sie einfach die Eingabetaste, um fortzufahren. Wenn Sie einen bestimmten Anwendungstyp erstellen möchten, sollten Sie den Archetyp finden, der Ihren Anforderungen entspricht, die Nummer dieses Archetyps eingeben und die Eingabetaste drücken. Z.B. Wenn Sie ein Webapp-Projekt erstellen möchten, können Sie 153 eingeben (dies ist die aktuelle Nummer für diesen Archetyp. Diese kann sich zeitlich ändern.)
  4. Da Archetypen Vorlagen sind und die aktuellen Best Practices widerspiegeln sollen, können sie sich rechtzeitig entwickeln und verfügen daher über eigene Versionen. Maven fragt Sie, welche Version des Archetyps Sie verwenden möchten. Standardmäßig wählt maven die neueste Version für Sie aus. Wenn Sie damit einverstanden sind, die neueste Version eines Archetyps zu verwenden, drücken Sie bei diesem Schritt einfach die Eingabetaste.
  5. Jedes Maven-Projekt (und -Modul) hat seine groupId, artefaktId und Version. Maven wird Sie dann in drei Schritten dazu auffordern. groupId: Dies ist in der Regel innerhalb einer Organisation oder eines Projekts eindeutig. artifactId: Die ArtifactId ist im Allgemeinen der Name, unter dem das Projekt bekannt ist. Version: Dies ist das letzte Stück des Namenspuzzle. ( Lesen Sie mehr )
  6. Schließlich fragt Maven Sie nach der Paketstruktur für Ihren Code. Es empfiehlt sich, eine Ordnerstruktur zu erstellen, die die groupId widerspiegelt. Maven legt dies als Standard fest. Sie können dies jedoch ändern.

Nach der Eingabe dieser Informationen zeigt Maven Ihnen alle eingegebenen Informationen an und fordert Sie auf, die Projekterstellung zu überprüfen. Wenn Sie J drücken und dann die Eingabetaste drücken, wird Ihr Projekt mit dem ausgewählten Artefakt und den ausgewählten Einstellungen erstellt.

Sie können auch die Website von maven-archetype-plugin lesen.

40
melihcelik

Sie werden gefragt, mit welchem ​​Archetyp Sie Ihr Projekt starten möchten. Wenn Sie bei der Eingabeaufforderung "Enter" drücken, erhalten Sie eine Liste der verfügbaren Optionen. Sie können maven-archetype-quickstart verwenden, um einfach ein einfaches Projekt zu erstellen (dies kann Sie dazu auffordern, ein Repository auszuwählen. In diesem Fall geben Sie einfach die Nummer ein, die dem ersten Repository entspricht, das nach der Eingabe hier aufgelistet ist).

Um Ihre andere Frage zu beantworten: Ja, die Verwendung eines Archetyps ist ein üblicher Weg zum Einrichten eines neuen Projekts. Hauptsächlich, weil es für jede Art von Projekten/Modulen genügend Archetypen gibt. Wenn Sie wissen, welchen Archetyp Sie verwenden möchten, können Sie mit einem Bootstrap ein Projekt starten.

4
Chris

Ein kurzer Blick auf das Tutorial zeigt, dass Sie einige Parameter für den Archetyp: Generate-Befehl ausgelassen haben. Deshalb weiß es nicht, aus welchem ​​Archetyp Ihr ​​Lernprojekt generiert werden soll, und zeigt Ihnen alle verfügbaren Archetypen (149) an.

Erste Frage: Wenn Sie die Eingabetaste drücken, haben Sie den Vorschlag des Archetyp-Plugins akzeptiert und # 149 ausgewählt. Dieser Archetyp ist in verschiedenen Versionen vorhanden. Normalerweise wird, wie von Chris angegeben, das neueste ausgewählt.

Zweite Frage: Da ein Archetyp eine Art Vorlage ist, die Ihnen viel Arbeit ersparen kann: Ja, das ist üblich. Aber nicht der einzige Weg - Sie können immer mit einem leeren Projekt beginnen.

1
Jan

Sie können auch das Kurzformular verwenden 

mvn archetype:generate -Dfilter=org.example.group:example-artifact

Oder auch nur eine Gruppe:

mvn archetype:generate -Dfilter=org.example.group:

Sie erhalten das folgende Artefakt (im ersten Fall), wenn es in einem konfigurierten Katalog vorhanden ist:

<groupId>org.example.group</groupId>
<artifactId>example-artifact</artifactId>

Oder Sie erhalten mehrere Vorschläge, wenn es mehr als einen Kandidaten gibt. Sie müssen sie auswählen, indem Sie den Index eingeben, der in der Auswahlliste angezeigt wird. 

Konsultieren Sie maven website für mehr! 

0
Picrochole