W Maven, do czego to się project.build.directory
odnosi? Jestem trochę zdezorientowany, czy odwołuje się do katalogu kodu źródłowego lub katalogu docelowego w projekcie Maven?
172
Możesz znaleźć te właściwości maven w super pom.
Słoik znajdziesz tutaj:
${M2_HOME}/lib/maven-model-builder-3.0.3.jar
Otwórz słoik za pomocą 7-zip lub innego archiwizera (lub użyj narzędzia jar).
Nawigować do
org/apache/maven/model
Tam znajdziesz pom-4.0.0.xml
.
Zawiera wszystkie te „skróty”:
<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>
Po pewnym lobbowaniu dodaję link dopom-4.0.0.xml
. Pozwala to zobaczyć właściwości bez otwierania lokalnego pliku jar.
project.build.directory
na przykład domyślnej wartości . To właśnie chciałem pokazać.Wskazuje na katalog wyjściowy najwyższego poziomu (którym jest domyślnie
target
):https://web.archive.org/web/20150527103929/http://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuide
EDYCJA: Jak już wspomniano, Codehaus obecnie niestety nie istnieje. Szczegółowe informacje na temat tych nieruchomości od Sonatype można znaleźć tutaj:
http://books.sonatype.com/mvnref-book/reference/resource-filtering-sect-properties.html#resource-filtering-sect-project-properties
źródło
project.base.dir
wskazuje na katalog główny projektu, w którym znajduje się pom.xml. Dlatego po tym,project.build.directory
Maven definiuje${project.basedir}/target
. Dzięki chłopaki, nie wiedziałem tego.${project.build.sourceDirectory}
wskazujeproject-A/src/main/java
,${project.build.scriptSourceDirectory}
wskazujeproject-A/src/main/scripts
,${project.build.testSourceDirectory}
wskazujeproject-A/src/test/java
,${project.build.directory}
wskazujeproject-A/target
,${project.build.directory}
wskazujeproject-A/target/classes
,${project.build.testOutputDirectory}
wskazujeproject-A/target/test-classes
.Możesz znaleźć najbardziej aktualną odpowiedź na wartość w swoim projekcie, po prostu wykonaj
polecenie i znajdź wartość
<build> ... <directory>
tagu w wyniku, czyli w efektywnym-pom. Pokaże wartość Super POM, chyba że nadpisałeś.źródło