112 votes

Comment remplacer une propriété maven en ligne de commande ?

J'ai le pom simple suivant qui fonctionne avec Maven 3.0.4.

<?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>

J'essaie de remplacer les paramètres par défaut dans la ligne de commande comme ceci :

mvn -Dproject.build.finalName=build clean package

Mais ceci est ignoré, et j'obtiens test-1.0.jar . J'ai essayé de changer d'autres propriétés, comme outputDirectory, directory, artifactId, mais j'ai aussi échoué.

Quelle est la bonne façon de procéder ?

157voto

ajozwik Points 4324

Voir Introduction au POM

finalName est créé comme :

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

L'une des solutions consiste à ajouter des biens propres :

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

Et maintenant, essayez :

mvn -DfinalName=build clean package

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X