Maven project.build.directory


172

Mavenでは、何をproject.build.directory指しますか?少し混乱していますが、Mavenプロジェクトのソースコードディレクトリまたはターゲットディレクトリを参照していますか?

回答:


224

あなたはスーパー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ファイルを開かなくてもプロパティを確認できます。


jarにアーカイブされるファイルではなく、オンラインリファレンスをお勧めします。これ:maven.apache.org/ref/3.0.3/maven-model/maven.html
khmarbaise

18
@khmarbaiseまあそれもいいことですがproject.build.directory、たとえばデフォルト値は表示されません。それが私が見せたかったものです。
maba

githubミラーは特定の行番号へのリンクを許可します:github.com/apache/maven-3/blob/trunk/maven-model-builder/src/… それ以外の場合は、svn.apache.org
Martin Ellis

@MartinEllisわかりました。回答もリンクで更新しました。ありがとうございました!
maba

github.com/apache/mavenで Mavenリポジトリのソースを検索しました。比較的少数のヒット(9)。そのプロパティを直接設定するものはありません。どこかに設置する必要があります!このURLショー私が見た検索結果:github.com/apache/maven/...
PATS

44

最上位の出力ディレクトリ(デフォルトではtarget)を指します。

https://web.archive.org/web/20150527103929/http://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuide

編集:指摘されたように、Codehausは現在悲しいことに消滅しています。これらのプロパティの詳細については、Sonatypeをご覧ください。

http://books.sonatype.com/mvnref-book/reference/resource-filtering-sect-properties.html#resource-filtering-sect-project-properties

Mavenで出力ディレクトリを参照しようとしている場合は、target / classesのようなリテラル値を使用しないでください。代わりに、プロパティ参照を使用してこれらのディレクトリを参照する必要があります。

    project.build.sourceDirectory
    project.build.scriptSourceDirectory
    project.build.testSourceDirectory
    project.build.outputDirectory
    project.build.testOutputDirectory
    project.build.directory

sourceDirectoryscriptSourceDirectory、およびtestSourceDirectoryプロジェクトのソースディレクトリへのアクセスを提供します。outputDirectoryそして、testOutputDirectoryMavenのはバイトコードや他のビルド出力を置くために起こっているディレクトリへのアクセスを提供します。directoryこれらの出力ディレクトリをすべて含むディレクトリを指します。


1
codehause.orgホスティングは終了し、このリンクは機能しなくなりました。
Bartosz Firyn

はい、本当で悲しい。機能するリンクで更新し、リンクされたページの関連セクションを引用しました。
sdouglass 2015年

7
... so project.base.dirは、pom.xmlがあるプロジェクトのルートディレクトリを指します。そのため、その後、project.build.directoryMavenによって定義されるは${project.basedir}/targetです。みんなありがとう、私はこれを知りませんでした。
evaldeslacasa

1
本当のようですが、どのようにしてこの情報を取得しましたか:「project.base.dirは、pom.xmlがあるプロジェクトのルートディレクトリを指します」。この定義はどこで確認できますか?
カルタール、

2
プロジェクトは、プロジェクト-Aと呼ばれ、プロジェクトAの下、のpom.xmlが宣言され、その後、仮定${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
SC30

4

プロジェクトの値について最新の答えを見つけることができます。

mvn3 help:effective-pom

コマンドを実行<build> ... <directory>し、結果の別名で実効タグのタグの値を見つけます。上書きしない限り、スーパーPOMの値が表示されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.