Maven:コマンドラインからターゲットディレクトリへのパスを変更するにはどうすればよいですか?
(場合によっては別のターゲットディレクトリを使用したい)
Maven:コマンドラインからターゲットディレクトリへのパスを変更するにはどうすればよいですか?
(場合によっては別のターゲットディレクトリを使用したい)
target/
でいますが、2つのプロセスがお互いに足を踏み入れることなく、コマンドラインからもビルドできるようにしたいと考えています。
src/it/my-integration-test-project/pom.xml
作成せずに、コマンドラインからのように統合テストを構築しtarget
ます。
回答:
プロファイルを使用する必要があります。
<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
-Dproject.build.directory
を使用することを意図している場合、それは使用可能です。これは-Dproject.build.directory
問題の回避策です。コマンドラインを起動したときに、ディレクトリ名にタイプミスをしないことができますプラス最初の溶液で、あなたは一度、すべてのパスを指定し、簡単になど、あなたがIDEから作業しても、このソリューションを使用することができます
settings.xml
、さらに移植性を高めるために、コマンドラインではなくプロファイルをアクティブ化できることを含めてください。
コリンは、プロファイルを使用する必要があることは正しいです。ただし、彼の答えは、プロファイル内のターゲットディレクトリをハードコードしています。別の解決策は、次のようなプロファイルを追加することです。
<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、ユーザーの設定、またはコマンドラインで指定できます。プロパティが存在しない場合、コンパイルは通常のターゲットディレクトリで行われます。
-Dalt.build.dir=~/mytarget
に使用するのと同等にするだけではないでしょう-D
か?