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そして、testOutputDirectoryMavenのはバイトコードや他のビルド出力を置くために起こっているディレクトリへのアクセスを提供します。directoryこれらの出力ディレクトリをすべて含むディレクトリを指します。
project.base.dirは、pom.xmlがあるプロジェクトのルートディレクトリを指します。そのため、その後、project.build.directoryMavenによって定義されるは${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の値が表示されます。