Maven project.build.directory
在Maven中, project.build.directory
指的是什么? 我有点困惑,是否引用Maven项目中的源代码目录或目标目录?
你可以在超级POM中find这些maven属性。
你在这里find这个jar子:
${M2_HOME}/lib/maven-model-builder-3.0.3.jar
用7-zip或其他存档器打开jar(或使用jar工具)。
导航
org/apache/maven/model
在那里你会findpom-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>
更新
经过一番游说之后,我添加了一个链接到pom-4.0.0.xml
。 这使您可以在不打开本地jar文件的情况下查看属性。
它指向您的顶级输出目录(默认为“目标”):
http://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuide
编辑:正如已经指出的,Codehaus现在已经不幸中止了。 你可以在这里findSonatype的这些属性的详细信息:
如果你曾经试图在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将要放置字节码或其他构build输出的目录的访问。 目录是指包含所有这些输出目录的目录。
您可以在项目中find最新的答案,只需执行
mvn3 help:effective-pom
命令,并find<build> ... <directory>
标记的值,即有效pom中的结果。 它会显示超级POM的价值,除非你已经覆盖。