我正在尝试在我的多模块maven项目中为JavaDocs配置备用输出位置。我在父POM中配置了maven-javadoc,如下所示:
<build>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9</version>
<configuration>
<noqualifier>all</noqualifier>
<reportOutputDirectory>
${project.reporting.outputDirectory}/api
</reportOutputDirectory>
<destDir>api</destDir>
</configuration>
</plugin>
...
</build>
然后我在这里设置project.reporting.outputDirectory。
<properties>
<project.reporting.outputDirectory>
./module-webapp/src/main/webapp/docs
</project.reporting.outputDirectory>
</properties>
但是,Maven似乎并不关心上述配置,并且尽管在默认目录中输出了JavaDoc。为什么是这样?
另外,我使用了project.reporting.outputDirectory变量的相对路径。当我在子模块中运行mvn javadoc:javadoc
时,这个相对路径是否意味着同样的事情,就像我在父模块中运行它一样?
提前致谢...非常感谢!
答案 0 :(得分:3)
您需要更改变量的名称。 project.reporting.outputDirectory
是一个内置变量,maven会覆盖你的设置。
请注意,您可能仍需要设置相对于project.reporting.outputDirectory
的目录,或${basedir}
之类的目录,以实际使其生效。
另请注意,根据我对文档的阅读,您的最终目录将是./module-webapp/src/main/webapp/docs/api/api
,这可能不是您想要的
就相对目录和子模块而言,每个构建都倾向于自包含,因此它将相对于每个子构建存放javadoc。
答案 1 :(得分:1)
发现了什么问题。出于某种原因,当我删除$ {project.reporting.outputDirectory}并直接输入路径时,它可以工作。由于某些其他原因,当我使用任何其他变量名称(除上述之外)时,它可以工作。