В Maven, к чему относится project.build.directory
? Я немного смущен, ссылается ли он на каталог исходного кода или целевой каталог в проекте Maven?
Maven project.build.directory
Ответ 1
Вы можете найти те свойства maven в супер pom.
Здесь вы найдете банку:
${M2_HOME}/lib/maven-model-builder-3.0.3.jar
Откройте банку с помощью 7-zip или другого архиватора (или используйте инструмент 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>
Update
После некоторого лоббирования я добавляю ссылку в pom-4.0.0.xml
. Это позволяет вам видеть свойства, не открывая локальный файл jar.
Ответ 2
Он указывает на ваш выходной каталог верхнего уровня (который по умолчанию является "target" ):
http://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuide
РЕДАКТИРОВАТЬ: Как уже отмечалось, Codehaus теперь печально не функционирует. Здесь вы можете найти информацию об этих свойствах от Sonatype:
Если вы когда-либо пытаетесь ссылаться на выходные каталоги в Maven, вы никогда не должны использовать буквенное значение, например target/classes. Вместо этого вы должны использовать ссылки на свойства для ссылки на эти каталоги.
project.build.sourceDirectory project.build.scriptSourceDirectory project.build.testSourceDirectory project.build.outputDirectory project.build.testOutputDirectory project.build.directory
sourceDirectory, scriptSourceDirectory и testSourceDirectory обеспечивают доступ к исходным каталогам для проекта. outputDirectory и testOutputDirectory обеспечивают доступ к каталогам, в которых Maven собирается вывести байт-код или другой вывод сборки. каталог относится к каталогу, который содержит все эти выходные каталоги.
Ответ 3
Вы можете найти самый актуальный ответ для значения в вашем проекте, просто выполните
mvn3 help:effective-pom
и найдите значение тега <build> ... <directory>
в результате aka в эффективном pom. Он покажет значение Super POM, если вы не перезаписали.