76 votes

Maven : Comment changer le chemin du répertoire cible à partir de la ligne de commande ?

Maven : Comment changer le chemin du répertoire cible à partir de la ligne de commande ?

(Je souhaite utiliser un autre répertoire cible dans certains cas)

83voto

Colin Hebert Points 40084

Vous devez utiliser des profils.

<profiles>
    <profile>
        <id>otherOutputDir</id>
        <build>
            <directory>yourDirectory</directory>
        </build>
    </profile>
</profiles>

Et démarrez maven avec votre profil

mvn compile -PotherOutputDir

Si vous voulez vraiment définir votre répertoire à partir de la ligne de commande, vous pouvez faire quelque chose comme ceci ( Pas du tout recommandé ) :

<properties>
    <buildDirectory>${project.basedir}/target</buildDirectory>
</properties>

<build>
    <directory>${buildDirectory}</directory>
</build>

Et compilez comme ceci :

mvn compile -DbuildDirectory=test

En effet, vous ne pouvez pas modifier le répertoire cible à l'aide de la fonction -Dproject.build.directory

27voto

Kelsey Rider Points 1306

Colin a raison de dire qu'il faut utiliser un profil. Cependant, sa réponse codifie en dur le répertoire cible dans le profil. Une autre solution consisterait à ajouter un profil comme celui-ci :

    <profile>
        <id>alternateBuildDir</id>
        <activation>
            <property>
                <name>alt.build.dir</name>
            </property>
        </activation>
        <build>
            <directory>${alt.build.dir}</directory>
        </build>
    </profile>

Cela aurait pour effet de modifier le répertoire de compilation en fonction de la propriété alt.build.dir, qui peut être indiquée dans un POM, dans les paramètres de l'utilisateur ou sur la ligne de commande. Si cette propriété n'est pas présente, la compilation se fera dans le répertoire cible normal.

3voto

Evgeny Points 410

Ma solution :

  • dans pom.xml :

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <outputDirectory>${dir}</outputDirectory>
            </configuration>
        </plugin>
  • en bash :

    mvn package -Ddir="/home/myuser/"

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