Maven:<build>标记下的<directory>和<outputdirectory>之间的区别

时间:2015-11-12 14:22:53

标签: maven maven-3

在Maven中,在“build”标签下我们有“directory”和“outputDirectory”,当我将它们都设置到不同的目录时,“outputDirectory”中指定的目录被当作目标目录。我还观察到outputDirectory中指定的目录可以配置为“directory”标签下指定的目录的子目录,但在这种情况下,我也可以使用“目录”本身来指定我的子目录。我们是否对这两个标签有任何具体用法

2 个答案:

答案 0 :(得分:0)

<build>
<directory>target</directory>
<outputDirectory>target/classes</outputDirectory>

请参阅Super pom:https://maven.apache.org/guides/introduction/introduction-to-the-pom.html

答案 1 :(得分:0)

Maven编译器插件将已编译的类放入project.build.outputDirectory

Surefire插件使用project.build.outputDirectory中的项目类运行测试

Jar插件从project.build.outputDirectory收集文件,并将生成的jar放入project.build.directory

安装插件从project.build.directory中获取jar

project.build.outputDirectory必须与project.build.directory不同,因为project.build.directory包含编译类以外的文件,并且这些文件会被期望仅编译类的插件(例如jar插件)错误地抓取。 / p>

默认情况下,project.build.outputDirectoryproject.build.directory的子目录(分别为target/classestarget)。 通常,不建议更改这些属性的默认值,通常不需要这样做。