3

我正在尝试在我的多模块 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在子模块中运行时,这个相对路径的含义是否与我在父模块中运行时的含义相同?

在此先感谢...非常感谢!

4

2 回答 2

4

您需要更改变量的名称。 project.reporting.outputDirectory是一个内置变量,maven 会覆盖你的设置。

请注意,您可能仍然需要设置相对于 的目录project.reporting.outputDirectory,或者类似的东西${basedir}才能真正让它工作。

另请记住,根据我对文档的阅读,您的最终目录将是./module-webapp/src/main/webapp/docs/api/api,这可能不是您想要的

就相对目录和子模块而言,每个构建往往是自包含的,因此它将相对于每个子构建存放 javadocs。

于 2013-01-15T05:54:09.680 回答
1

发现出了什么问题。出于某种原因,当我删除 ${project.reporting.outputDirectory} 并直接输入路径时,它可以工作。由于某些其他原因,当我使用任何其他变量名(上述变量名除外)时,它会起作用。

于 2013-01-15T05:52:56.127 回答