2017-09-16 3 views
0

ich ein Maven-Projekt habe, und ich bin mit diesem --projects Befehl von der Wurzel des Projektes mehrere pom DateienMaven sagt, dass es nicht etwas in dem „Reaktor“ findet

mvn saubere Installation zu laufen - proj1, then-proj2

Die "proj1" und "dann proj2" sind die Artefakt-IDs der Projekte, die ich ausführen möchte. Das heißt, ich gehe für jedes Projekt zur pom.xml und verwende dort die "Artefakt-ID".

Beide proj1 & then-proj2 sind themeslves Untermodule von Projekten in der Haupt-Pom-Datei.

Sagen Sie proj1 ist in A, und dann-proj2 ist in B, und beide A & B sind in der Haupt-Pom-Datei.

Als ich dies ausführen, Maven sagt mir: „konnte nicht das ausgewählte Projekt im Reaktor finden: proj1“

Das ist wirklich frustrierend - warum mir nicht sagen, was alle die Projekte im Reaktor? Wie auch immer, was mache ich falsch?

Antwort

1

Der Befehl von Ihnen verwendet:

mvn clean install --projects 'submodule1','submodule2` 

Arbeiten an den Untermodulen submodule1 und submodule2 im pom.xml des Moduls angegeben, wo Sie diesen Befehl sind ausführen.

Die Anleitung zu Working with Multiple modules soll Ihnen helfen, den Reaktor und seine Sortierreihenfolge zu verstehen. Eine allgemeine Struktur des Moduls für einen solchen Anwendungsfall würde wie folgt aussehen:

<groupId>stackoverflow</groupId> 
<artifactId>mainmodule</artifactId> 
<packaging>pom</packaging> 
<version>1.2.3</version> 

<modules> 
    <module>submodule1</module> 
    <module>submodule2</module> 
    ... others 
</modules> 
... other tags 
+0

alle Bedingungen maven Verwendungen sind - für mich - verwirrend . Welches xml-Element ist der Name des "Untermoduls"? – bharal

+0

@bharal Haben Sie die Antwort aktualisiert, können Sie mehr darüber erfahren, wenn Sie die Datei 'pom.xml' in dem Verzeichnis betrachten, in dem Sie diesen Befehl ausführen. – nullpointer

1

Wenn Sie nur die artifactId der des gegebenen Projektes verwenden müssen Sie das richtig auf der Kommandozeile definieren:

Hilfe Ausgabe von Maven (mvn --help)

kommagetrennte Liste von spezifizierten Reaktor Projekte aller Projekte zu bauen. Ein Projekt kann von [groupId] angegeben werden: artifactId oder durch seine relativen Pfad

Das bedeutet in Ihrem Fall müssen Sie definieren:

mvn clean install --projects :proj1,:then-proj2 
Verwandte Themen