Trong Maven, project.build.directory
đề cập đến điều gì? Tôi hơi bối rối, nó tham chiếu thư mục mã nguồn hoặc thư mục đích trong dự án Maven?
Trong Maven, project.build.directory
đề cập đến điều gì? Tôi hơi bối rối, nó tham chiếu thư mục mã nguồn hoặc thư mục đích trong dự án Maven?
Câu trả lời:
Bạn có thể tìm thấy những thuộc tính maven trong siêu pom.
Bạn tìm bình ở đây:
${M2_HOME}/lib/maven-model-builder-3.0.3.jar
Mở bình bằng 7-zip hoặc một số trình lưu trữ khác (hoặc sử dụng công cụ jar).
Hướng đến
org/apache/maven/model
Ở đó bạn sẽ tìm thấy pom-4.0.0.xml
.
Nó chứa tất cả những "cắt ngắn":
<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>
Sau khi vận động hành lang, tôi thêm một liên kết đếnpom-4.0.0.xml
. Điều này cho phép bạn xem các thuộc tính mà không cần mở tệp jar cục bộ.
project.build.directory
chẳng hạn. Đó là những gì tôi muốn thể hiện.
Nó trỏ đến thư mục đầu ra cấp cao nhất của bạn (theo mặc định là target
):
EDIT: Như đã được chỉ ra, Codehaus hiện đang buồn bã. Bạn có thể tìm thấy chi tiết về các tính chất này từ Sonatype tại đây:
Nếu bạn đã từng cố gắng tham chiếu các thư mục đầu ra trong Maven, bạn không bao giờ nên sử dụng một giá trị bằng chữ như đích / lớp . Thay vào đó, bạn nên sử dụng tài liệu tham khảo để tham khảo các thư mục này.
project.build.sourceDirectory project.build.scriptSourceDirectory project.build.testSourceDirectory project.build.outputDirectory project.build.testOutputDirectory project.build.directory
sourceDirectory
,scriptSourceDirectory
vàtestSourceDirectory
cung cấp quyền truy cập vào các thư mục nguồn cho dự án.outputDirectory
vàtestOutputDirectory
cung cấp quyền truy cập vào các thư mục mà Maven sẽ đặt mã byte hoặc đầu ra xây dựng khác.directory
đề cập đến thư mục chứa tất cả các thư mục đầu ra.
project.base.dir
trỏ đến thư mục gốc của dự án có pom.xml. Đó là lý do tại sao sau đó, project.build.directory
được xác định bởi Maven là ${project.basedir}/target
. Cảm ơn mọi người, tôi không biết điều này.
${project.build.sourceDirectory}
trỏ đến project-A/src/main/java
, ${project.build.scriptSourceDirectory}
trỏ đến project-A/src/main/scripts
, ${project.build.testSourceDirectory}
trỏ tới project-A/src/test/java
, ${project.build.directory}
trỏ tới project-A/target
, ${project.build.directory}
trỏ tới project-A/target/classes
, ${project.build.testOutputDirectory}
trỏ tới project-A/target/test-classes
.
Bạn có thể tìm thấy câu trả lời cập nhật nhất cho giá trị trong dự án của bạn chỉ cần thực hiện
mvn3 help:effective-pom
ra lệnh và tìm <build> ... <directory>
giá trị của thẻ trong kết quả aka trong pom hiệu quả. Nó sẽ hiển thị giá trị của Super POM trừ khi bạn đã ghi đè.