wake-up-neo.com

Setze die Eigenschaft des Plugins in der Kommandozeile in Maven 2

Wie würde man in maven 2.x die Eigenschaft eines Plugins in der Befehlszeile anstatt in der <Konfiguration> dieses Plugins in pom oder settings.xml festlegen?

Wenn ich zum Beispiel mvn dependency:copy-dependencies verwendet habe ( hier zu sehen ), wie kann ich die useRepositoryLayout-Eigenschaft festlegen, ohne entweder pom oder meine settings.xml zu berühren?

Vielen Dank!

24
whaley

Die Antwort war direkt vor mir in den Kopierabhängigkeiten von mojo docs (ich habe sogar darauf verlinkt). Die Dokumentation für die Eigenschaft enthält den Ausdruck, auf den Sie sich beziehen können.

useRepositoryLayout: Platzieren Sie jedes Artefakt im selben Verzeichnislayout wie ein Standard-Repository. Beispiel: /outputDirectory/junit/junit/3.8.1/junit-3.8.1.jar

* Type: boolean
* Since: 2.0-alpha-2
* Required: No
* Expression: ${mdep.useRepositoryLayout}
* Default: false

Um diese Eigenschaft über die Befehlszeile festzulegen, müssen Sie sie ausführen

mvn -Dmdep.useRepositoryLayout=true <goals go here>
19
whaley

Definieren Sie die Eigenschaften als willkürliche Eigenschaften. In meinem Fall habe ich eine neue Eigenschaft build.version definiert:

<properties> build.version=unknown </properties>

Ich benutze die Immobilie:

<warName>${build.version}</warName>

Ich definiere die Eigenschaft:

mvn -P prod -Dbuild.version=app_name-branch_name-build_number package
13
bcolfer

Normalerweise legen Sie Maven-Eigenschaften mit derselben Syntax wie Java-Systemeigenschaften fest. Hast du die folgende Zeile ausprobiert?

mvn -DuseRepositoryLayout=true dependency:copy-dependencies
6

Die anderen Antworten hier waren mir nicht klar. So verstehe ich es:

Wenn der Plugin-Code eine Systemeigenschaft für seinen Parameter verwendet, können Sie den Wert in der Befehlszeile definieren.

Es gibt drei verschiedene Möglichkeiten, dies im Plugin-Code zu erreichen:

@parameter expression="${aSystemProperty}" 
@parameter default-value="${anExpression}"
@parameter property="aSystemProperty"

Wenn eine oder mehrere dieser Methoden im Plugin-Code für eine bestimmte Eigenschaft verwendet werden, können Sie in der Befehlszeile einen Wert für den Plugin-Parameter angeben. Der obige Code wurde von Maven Docs hier übernommen.

Wenn Sie ein Plugin mit dem obigen Code verwenden, können Sie mit dem folgenden Befehl einen Wert für Ihre Eigenschaft angeben:

mvn -DaSystemProperty=my-value <goal-here>
0
Jared