Maven:如何从命令行更改path到目标目录?

Maven:如何从命令行更改path到目标目录?

(我想在某些情况下使用另一个目标目录)

你应该使用configuration文件。

 <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更改目标目录

科林是正确的,应该使用一个configuration文件。 但是,他的答案硬编码在configuration文件中的目标目录。 另一种解决scheme是添加一个这样的configuration文件:

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

这样做可能会将构build目录更改为由alt.build.dir属性(可以在POM中,在用户的设置中或在命令行中)给出的值。 如果该属性不存在,则编译将在正常目标目录中发生。

我的解决scheme

  • 在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> 
  • 命令在bash中:

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