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>
これを行うと、POM、ユーザーの設定、またはコマンドラインで指定できるalt.build.dirプロパティで指定されたものにビルドディレクトリを変更する効果があります。プロパティが存在しない場合、コンパイルは通常のターゲットディレクトリで行われます。
私の解決策:
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/"