Maven从命令行输出多模块src和测试目录

Maven从命令行输出多模块src和测试目录,maven,build,Maven,Build,我曾经分别从下面的命令行检查maven项目的src和test目录: mvn help:evaluate -Dexpression=project.build.sourceDirectory mvn help:evaluate -Dexpression=project.build.testSourceDirectory 然而,当项目有多个模块时,上述输出变得不可靠。我发现上面的每个命令只输出一个目录,大多数情况下,该目录甚至不存在于该项目中!当maven实际构建时,它知道在相应的模块目录中查找s

我曾经分别从下面的命令行检查maven项目的src和test目录:

mvn help:evaluate -Dexpression=project.build.sourceDirectory
mvn help:evaluate -Dexpression=project.build.testSourceDirectory
然而,当项目有多个模块时,上述输出变得不可靠。我发现上面的每个命令只输出一个目录,大多数情况下,该目录甚至不存在于该项目中!当maven实际构建时,它知道在相应的模块目录中查找src和测试

Apache Jackrabbit是一个示例项目: 上面的src命令输出这个项目中不存在的目录,但是maven知道要构建的实际目录是什么

这里,我的问题是,当项目有多个模块覆盖默认的src/test目录时,maven是否支持任何命令行选项来输出所有的src和test目录?如果是,是什么


谢谢

我不明白。在Maven项目中,
project.build.sourceDirectory
src/main/java
。这在超级POM中定义。文件夹是否存在与此无关。我不确定问题是什么。但是,我如何知道实际的源目录?Maven必须知道它,否则它将无法编译。问题是问实际的目录是什么。例如,在文章中给定的jackrabbit项目中,源目录(来自命令行输出)甚至不存在,但它可以编译。但实际的源目录是
src/main/java
(除非该属性被重写)。也许它不存在,但正如我说的,它是不相关的。你说它不相关是什么意思?我对maven用于构建的实际目录感兴趣。如果它不存在,maven如何构建?所以那里必须有一个或多个目录,我确信它们是pom.xml中被覆盖的目录。问题是maven是否提供cli来输出这些dir。分别考虑每个Maven项目和模块。每个都有一个单独的
项目.build.sourceDirectory
。对于具有
pom
打包的父项目,
project.build.sourceDirectory
src/main/java
,但该目录不存在:无问题:无需编译。对于模块,该属性指向那些模块的
src/main/java
,该目录存在,因此它编译了一些东西。想一想,也许这就是你想理解的地方:项目和模块一样多,有
project.build.sourceDirectory