Maven:如何从命令行更改目标目录的路径?
(我想在某些情况下使用另一个目标目录)
答案 0 :(得分:80)
您应该使用个人资料。
<profiles>
<profile>
<id>otherOutputDir</id>
<build>
<directory>yourDirectory</directory>
</build>
</profile>
</profiles>
使用您的个人资料启动专家
mvn compile -PotherOutputDir
如果您真的想从命令行定义目录,可以执行以下操作(根本不推荐):
<properties>
<buildDirectory>${project.basedir}/target</buildDirectory>
</properties>
<build>
<directory>${buildDirectory}</directory>
</build>
编译如下:
mvn compile -DbuildDirectory=test
那是因为您无法使用-Dproject.build.directory
答案 1 :(得分:26)
Colin是正确的,应该使用配置文件。但是,他的回答硬编码了配置文件中的目标目录。另一种解决方案是添加如下配置文件:
<profile>
<id>alternateBuildDir</id>
<activation>
<property>
<name>alt.build.dir</name>
</property>
</activation>
<build>
<directory>${alt.build.dir}</directory>
</build>
</profile>
这样做会将构建目录更改为alt.build.dir属性给出的内容,该属性可以在POM,用户设置或命令行中给出。如果该属性不存在,则编译将在正常目标目录中进行。
答案 2 :(得分:6)
我的解决方案:
:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<outputDirectory>${dir}</outputDirectory>
</configuration>
</plugin>
命令:
mvn package -Ddir="/home/myuser/"