2016-03-31 11 views
2

Ich versuche, meinem Archetyp zusätzliche Variablen hinzuzufügen. Insbesondere enthält mein Archetyp eine logback.xml-Datei, und ich möchte den Protokolldateinamen mit dem Namen des Projekts füllen, das ich aus dem Archetyp generiere.Was ist der Unterschied zwischen archetype.xml und archetype-metadata.xml in Maven

Ich führte die Anweisungen in der Antwort hier Passing extra properties to maven archetype:generate aus, aber es sagt, um ein <requiredProperties> Element zu meinem Archetyp-metadata.xml hinzuzufügen. Mein Archetyp hat keine archetype-metadata.xml, sondern nur eine archetype.xml (die automatisch generiert wurde, als ich meinen Archetyp aus maven-archetype-archetype generierte).

In https://maven.apache.org/guides/mini/guide-creating-archetypes.html verweist Maven auf archetype.xml als Artefakt-Deskriptor.

Ich googelte Archetyp-metadata.xml, und fand dies - http://maven.apache.org/archetype/archetype-models/archetype-descriptor/archetype-descriptor.html. Maven nennt es auch einen Archetyp-Deskriptor, aber seine Spezifikation enthält nicht die ID- und Ressourcenelemente, die ich in meiner archetype.xml sehe.

Sind archetype.xml und archetype-metadata.xml dasselbe? wenn nicht, was sind ihre unterschiedlichen Zwecke? Kann ich ein <requiredProperties> Element zu meiner Datei archetype.xml hinzufügen? Oder sollte ich eine archetype-metadata.xml-Datei erstellen?

+1

Ich schlage vor, Sie beginnen mit 'mvn archetype: create-from-project', die die Vorlage für den Archetyp erstellt. –

+0

Ich vermute, dass die archetype.xml dem hier beschriebenen Schema folgt: https://maven.apache.org/archetype/archetype-models/archetype-registry/archetype-registry.html – devsprint

Antwort

1

Sie sollten das Urbild Descriptor (Urbild-metadata.xml) erstellen, wie ich in dem genannten Beitrag vorgeschlagen, Passing extra properties to maven archetype:generate

Hier sind die Schritte, die ich das Projekt zu generieren bin Ausführung:

mkdir Temp

cd Temp

git clone [email protected]: jibbyj/appArchetype.git

cd appArchetype

mvn saubere Installation

mkdir run01

cd run01

ls

mvn Urbild: erzeugen \

-DarchetypeGroupId = com.company.archetype \

-DarchetypeArtif ACTID = appArchetype \

-DarchetypeVersion = 1,2-snapshot \

-DarchetypeCatalog = local \

-DinteractiveMode = false \

-DgroupId = com.company \

-DartifactId = test \

-DappName = test

Nachdem dieser Ablauf abgeschlossen ist, können Sie im Testordner das generierte Projekt finden. In der Datei pom.xml wird die artifactId auf den "Test" gesetzt, ebenfalls in src/main/resources/logback.xml Die Ersetzung wird durchgeführt.

+0

Wenn ich dies tue, meine archetype.xml Datei wird ignoriert, und meine Archetype-Ressourcen werden nicht in mein Projekt eingefügt ... – Jibbyj

+0

archetype.xml wird nicht verwendet. Sie sollten archetype-metadata.xml verwenden. Gibt es das überhaupt, dass du das Projekt teilen kannst? – devsprint

+0

https://github.com/jibbyj/appArchetype.git – Jibbyj

0

Der Haupt zum Mitnehmen aus der akzeptierten Antwort oben Urbild-metadata.xml statt archetype.xml, mit einem <requiredProperties> Elemente, sowie ein <filesets> Elemente für die Ressourcen zu verwenden, war ich eingeschlossen werden soll. In archetype.xml war es ein <resources> Tag. Gib dem Archetyp auch eine <packaging>maven-archetype</packaging>.

Immer noch nicht ganz klar, was der Unterschied zwischen archetype.xml und archetype-metadata.xml ist. Angenommen, archetype.xml ist veraltet?

+0

Soweit ich auf das referenzierte Dokument schaue, sieht es in der Dokumentation nur wie ein Tippfehler aus. Wenn Sie den Link überprüfen, können Sie sehen, dass er auf archetype-metadata.xml description verweist. – devsprint

+0

Ich glaube nicht, dass das der Fall ist. Ich folgte den Anweisungen am Ende von https://maven.apache.org/guides/mini/guide-creating-archetypes.html und verwendete -DarchetypeArtifactId = maven-archetype-archetype, um eine Archetypvorlage zu generieren, und er erstellte Archetyp. XML, nicht Archetyp-Metadaten.xml – Jibbyj

Verwandte Themen