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的这些属性的详细信息:

http://books.sonatype.com/mvnref-book/reference/resource-filtering-sect-properties.html#resource-filtering-sect-project-properties

如果你曾经试图在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的价值,除非你已经覆盖。