Mavenでは、何をproject.build.directory
指しますか?少し混乱していますが、Mavenプロジェクトのソースコードディレクトリまたはターゲットディレクトリを参照していますか?
Mavenでは、何をproject.build.directory
指しますか?少し混乱していますが、Mavenプロジェクトのソースコードディレクトリまたはターゲットディレクトリを参照していますか?
回答:
あなたはスーパーpomでそれらのmavenプロパティを見つけることができます。
あなたはここに瓶を見つけます:
${M2_HOME}/lib/maven-model-builder-3.0.3.jar
7-zipまたはその他のアーカイバでjarを開きます(またはjarツールを使用します)。
案内する
org/apache/maven/model
そこにあなたがいますpom-4.0.0.xml
。
それはそれらすべての「ショートカット」を含んでいます:
<project>
...
<build>
<directory>${project.basedir}/target</directory>
<outputDirectory>${project.build.directory}/classes</outputDirectory>
<finalName>${project.artifactId}-${project.version}</finalName>
<testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory>
<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
<scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>
<testSourceDirectory>${project.basedir}/src/test/java</testSourceDirectory>
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
</resource>
</resources>
<testResources>
<testResource>
<directory>${project.basedir}/src/test/resources</directory>
</testResource>
</testResources>
...
</build>
...
</project>
ロビー活動の後、へのリンクをpom-4.0.0.xml
追加します。これにより、ローカルのjarファイルを開かなくてもプロパティを確認できます。
project.build.directory
、たとえばデフォルト値は表示されません。それが私が見せたかったものです。
最上位の出力ディレクトリ(デフォルトではtarget
)を指します。
編集:指摘されたように、Codehausは現在悲しいことに消滅しています。これらのプロパティの詳細については、Sonatypeをご覧ください。
Mavenで出力ディレクトリを参照しようとしている場合は、target / classesのようなリテラル値を使用しないでください。代わりに、プロパティ参照を使用してこれらのディレクトリを参照する必要があります。
project.build.sourceDirectory project.build.scriptSourceDirectory project.build.testSourceDirectory project.build.outputDirectory project.build.testOutputDirectory project.build.directory
sourceDirectory
、scriptSourceDirectory
、およびtestSourceDirectory
プロジェクトのソースディレクトリへのアクセスを提供します。outputDirectory
そして、testOutputDirectory
Mavenのはバイトコードや他のビルド出力を置くために起こっているディレクトリへのアクセスを提供します。directory
これらの出力ディレクトリをすべて含むディレクトリを指します。
project.base.dir
は、pom.xmlがあるプロジェクトのルートディレクトリを指します。そのため、その後、project.build.directory
Mavenによって定義されるは${project.basedir}/target
です。みんなありがとう、私はこれを知りませんでした。
${project.build.sourceDirectory}
を指すproject-A/src/main/java
、${project.build.scriptSourceDirectory}
との点project-A/src/main/scripts
、${project.build.testSourceDirectory}
を指しproject-A/src/test/java
、${project.build.directory}
にポイントproject-A/target
、${project.build.directory}
ポイントにproject-A/target/classes
、${project.build.testOutputDirectory}
にポイントproject-A/target/test-classes
。
プロジェクトの値について最新の答えを見つけることができます。
mvn3 help:effective-pom
コマンドを実行<build> ... <directory>
し、結果の別名で実効タグのタグの値を見つけます。上書きしない限り、スーパーPOMの値が表示されます。