Di Maven, apa project.build.directory
rujukannya? Saya agak bingung, apakah referensi direktori kode sumber atau direktori target dalam proyek Maven?
Di Maven, apa project.build.directory
rujukannya? Saya agak bingung, apakah referensi direktori kode sumber atau direktori target dalam proyek Maven?
Jawaban:
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
):
EDIT: Seperti yang telah ditunjukkan, Codehaus sekarang sedih mati. Anda dapat menemukan detail tentang properti ini dari Sonatype di sini:
Jika Anda pernah mencoba referensi direktori keluaran di Maven, Anda tidak boleh menggunakan nilai literal seperti target / kelas . Sebaliknya, Anda harus menggunakan referensi properti untuk merujuk ke direktori ini.
project.build.sourceDirectory project.build.scriptSourceDirectory project.build.testSourceDirectory project.build.outputDirectory project.build.testOutputDirectory project.build.directory
sourceDirectory
,,scriptSourceDirectory
dantestSourceDirectory
memberikan akses ke direktori sumber untuk proyek.outputDirectory
dantestOutputDirectory
memberikan akses ke direktori tempat Maven akan meletakkan bytecode atau output build lainnya.directory
merujuk ke direktori yang berisi semua direktori keluaran ini.
project.base.dir
arahkan ke direktori root proyek tempat pom.xml berada. Itu sebabnya setelah itu, yang project.build.directory
didefinisikan oleh Maven adalah ${project.basedir}/target
. Terima kasih teman-teman, saya tidak tahu ini.
${project.build.sourceDirectory}
menunjuk ke project-A/src/main/java
, ${project.build.scriptSourceDirectory}
menunjuk ke project-A/src/main/scripts
, ${project.build.testSourceDirectory}
menunjuk ke project-A/src/test/java
, ${project.build.directory}
menunjuk ke project-A/target
, ${project.build.directory}
menunjuk ke project-A/target/classes
, ${project.build.testOutputDirectory}
menunjuk ke , menunjuk ke project-A/target/test-classes
.
Anda dapat menemukan jawaban terkini untuk nilai dalam proyek Anda, cukup jalankan
mvn3 help:effective-pom
perintah dan temukan nilai <build> ... <directory>
tag di hasil alias di pom-efektif. Ini akan menunjukkan nilai Super POM kecuali Anda telah ditimpa.