web-dev-qa-db-fra.com

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

J'ai le pom plaine suivant en cours d'exécution par 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 en ligne de commande, comme ceci:

mvn -Dproject.build.finalName=build clean package

Mais ceci est ignoré et je reçois test-1.0.jar. J'ai essayé de modifier d'autres propriétés, telles que outputDirectory, directory, artifactId, mais j'ai également échoué.

Quelle est la bonne façon de faire cette chose?

75
glaz666

Voir Introduction au POM

finalName est créé en tant que:

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

Une des solutions consiste à ajouter une propriété propre:

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

Et maintenant, essayez:

mvn -DfinalName=build clean package

112
Andrzej Jozwik