webentwicklung-frage-antwort-db.com.de

Wie kann ich die Eigenschaft maven in der Kommandozeile überschreiben?

Ich habe den folgenden einfachen Pom, der durch Maven 3.0.4 läuft.

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.Apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 http://maven.Apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>test</artifactId>
    <version>1.0</version>
    <packaging>jar</packaging>

</project>

Ich versuche, die Standardeinstellungen in der Befehlszeile wie folgt zu überschreiben:

mvn -Dproject.build.finalName=build clean package

Aber das wird ignoriert und ich bekomme test-1.0.jar. Ich habe versucht, andere Eigenschaften wie outputDirectory, directory, artifactId zu ändern, bin aber auch gescheitert.

Was ist der richtige Weg, um dieses Ding zu machen?

75
glaz666

Siehe Einführung in das POM

finalName wird erstellt als:

<build>
    <finalName>${project.artifactId}-${project.version}</finalName>
</build>

Eine der Lösungen besteht darin, eine eigene Eigenschaft hinzuzufügen:

<properties>
    <finalName>${project.artifactId}-${project.version}</finalName>
</properties>
<build>
    <finalName>${finalName}</finalName>
 </build>

Und jetzt versuchen Sie:

mvn -DfinalName=build clean package

112
Andrzej Jozwik