Maven: Comment changer le chemin du répertoire cible en ligne de commande?
(Je veux utiliser un autre répertoire cible dans certains cas)
Vous devriez utiliser des profils.
<profiles>
<profile>
<id>otherOutputDir</id>
<build>
<directory>yourDirectory</directory>
</build>
</profile>
</profiles>
Et commencez 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 recommandé du tout):
<properties>
<buildDirectory>${project.basedir}/target</buildDirectory>
</properties>
<build>
<directory>${buildDirectory}</directory>
</build>
Et compiler comme ceci:
mvn compile -DbuildDirectory=test
C'est parce que vous ne pouvez pas changer le répertoire cible en utilisant -Dproject.build.directory
Colin a raison de dire qu'un profil devrait être utilisé. Cependant, sa réponse code le répertoire cible dans le profil. Une autre solution serait d’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 remplacer le répertoire de construction par ce qui est donné par la propriété alt.build.dir, ce qui peut être donné dans un POM, dans les paramètres de l'utilisateur ou sur la ligne de commande. Si la propriété n'est pas présente, la compilation aura lieu dans le répertoire cible normal.
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>
commande en bash:
mvn package -Ddir="/home/myuser/"