Di Maven, apa project.build.directory
rujukannya? Saya agak bingung, apakah referensi direktori kode sumber atau direktori target dalam proyek Maven?
172
Anda dapat menemukan properti-properti pakar di super pom.
Anda menemukan kendi di sini:
${M2_HOME}/lib/maven-model-builder-3.0.3.jar
Buka tabung dengan 7 zip atau pengarsip lainnya (atau gunakan alat jar).
Navigasi ke
org/apache/maven/model
Di sana Anda akan menemukan pom-4.0.0.xml
.
Ini berisi semua "jalan pintas":
<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>
Setelah beberapa lobi saya menambahkan tautan kepom-4.0.0.xml
. Ini memungkinkan Anda untuk melihat properti tanpa membuka file jar lokal.
project.build.directory
misalnya. Itu yang ingin saya tunjukkan.Ini menunjuk ke direktori output tingkat atas Anda (yang secara default adalah
target
):https://web.archive.org/web/20150527103929/http://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuide
EDIT: Seperti yang telah ditunjukkan, Codehaus sekarang sedih mati. Anda dapat menemukan detail tentang properti ini dari Sonatype di sini:
http://books.sonatype.com/mvnref-book/reference/resource-filtering-sect-properties.html#resource-filtering-sect-project-properties
sumber
project.base.dir
arahkan ke direktori root proyek tempat pom.xml berada. Itu sebabnya setelah itu, yangproject.build.directory
didefinisikan oleh Maven adalah${project.basedir}/target
. Terima kasih teman-teman, saya tidak tahu ini.${project.build.sourceDirectory}
menunjuk keproject-A/src/main/java
,${project.build.scriptSourceDirectory}
menunjuk keproject-A/src/main/scripts
,${project.build.testSourceDirectory}
menunjuk keproject-A/src/test/java
,${project.build.directory}
menunjuk keproject-A/target
,${project.build.directory}
menunjuk keproject-A/target/classes
,${project.build.testOutputDirectory}
menunjuk ke , menunjuk keproject-A/target/test-classes
.Anda dapat menemukan jawaban terkini untuk nilai dalam proyek Anda, cukup jalankan
perintah dan temukan nilai
<build> ... <directory>
tag di hasil alias di pom-efektif. Ini akan menunjukkan nilai Super POM kecuali Anda telah ditimpa.sumber