在Maven中,project.build.directory指什么?我有点困惑,它引用的是Maven项目中的源代码目录还是目标目录?
当前回答
您可以在super pom中找到这些maven属性。
你可以在这里找到这个罐子:
${M2_HOME}/lib/maven-model-builder-3.0.3.jar
用7-zip或其他存档器(或使用jar工具)打开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>
更新
经过一番游说,我添加了一个到pom-4.0.0.xml的链接。这允许您在不打开本地jar文件的情况下查看属性。
其他回答
可以为项目中的值找到最新的答案,只需执行
mvn3 help:effective-pom
命令并找到<build>…<directory>标签在结果中的值,也就是在effective-pom中。它将显示Super POM的值,除非您已覆盖。
除了@Verhás István的答案(我喜欢),我还期待这个问题的一句话:
$ {project.reporting。outputDirectory}解析为项目中的目标/站点。
您可以在super pom中找到这些maven属性。
你可以在这里找到这个罐子:
${M2_HOME}/lib/maven-model-builder-3.0.3.jar
用7-zip或其他存档器(或使用jar工具)打开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>
更新
经过一番游说,我添加了一个到pom-4.0.0.xml的链接。这允许您在不打开本地jar文件的情况下查看属性。
它指向你的顶级输出目录(默认为target):
https://web.archive.org/web/20150527103929/http://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuide
编辑:正如已经指出的,Codehaus现在不幸地不复存在了。你可以从Sonatype这里找到关于这些属性的详细信息:
http://books.sonatype.com/mvnref-book/reference/resource-filtering-sect-properties.html#resource-filtering-sect-project-properties
If you are ever trying to reference output directories in Maven, you should never use a literal value like target/classes. Instead you should use property references to refer to these directories. project.build.sourceDirectory project.build.scriptSourceDirectory project.build.testSourceDirectory project.build.outputDirectory project.build.testOutputDirectory project.build.directory sourceDirectory, scriptSourceDirectory, and testSourceDirectory provide access to the source directories for the project. outputDirectory and testOutputDirectory provide access to the directories where Maven is going to put bytecode or other build output. directory refers to the directory which contains all of these output directories.
推荐文章
- Maven project.build.directory
- Spring Boot -父pom,当你已经有一个父pom
- 使用Maven复制文件的最佳实践
- Maven命令行如何指向特定的settings.xml为单个命令?
- Maven依赖项失败,出现501错误
- 禁用maven下载进度指示
- Maven surefire找不到ForkedBooter类
- 在IntelliJ IDEA中导入Maven依赖项
- Java编译器级别与安装的Java项目facet的版本不匹配
- 在pom.xml中的<依赖>下的<作用域>是为了什么?
- “react-scripts”不被视为内部或外部命令
- Maven项目版本继承——我必须指定父版本吗?
- Maven——总是下载源代码和javadocs
- “mvn清洁安装”与“mvn安装”有什么不同?
- 如何在pom.xml文件中指定Java编译器版本?