Maven: Как изменить путь к целевому каталогу из командной строки?
(Я хочу использовать другой целевой каталог в некоторых случаях)
Maven: Как изменить путь к целевому каталогу из командной строки?
(Я хочу использовать другой целевой каталог в некоторых случаях)
Вы должны использовать профили.
<profiles>
<profile>
<id>otherOutputDir</id>
<build>
<directory>yourDirectory</directory>
</build>
</profile>
</profiles>
И запустите maven с вашим профилем
mvn compile -PotherOutputDir
Если вы действительно хотите определить свой каталог из командной строки, вы можете сделать что-то вроде этого (НЕ рекомендуется вообще):
<properties>
<buildDirectory>${project.basedir}/target</buildDirectory>
</properties>
<build>
<directory>${buildDirectory}</directory>
</build>
И скомпилируйте вот так:
mvn compile -DbuildDirectory=test
Это потому, что вы не можете изменить целевой каталог с помощью -Dproject.build.directory
Колин правильно, что нужно использовать профиль. Однако его ответ жестко задает целевой каталог в профиле. Альтернативным решением было бы добавить такой профиль:
<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, в пользовательских настройках или в командной строке. Если свойство отсутствует, компиляция произойдет в обычном целевом каталоге.
Мое решение:
в 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/"