3

在使用 maven-javadoc-plugin 生成测试 Javadoc 时,我突然收到多个错误,指出 Javadoc 插件无法从我的主代码库中找到任何类。在运行test-javadoc目标时,类路径仅包含src/test文件夹中的类;src/main插件没有可见的类。

此错误发生在 maven-javadoc-plugin 版本2.10和. 此错误是官方认可的错误,您可以在此处查看错误报告。官方错误报告列出了涉及将插件降级为 version 的解决方法,我已经确认这是解决错误的成功解决方法。还值得注意的是,该错误目前已被列为已修复,应该在 maven-javadoc-plugin 的下一个版本中消除,这可能是版本2.10.12.10.2MJAVADOC-4142.9.12.11 2.10.3.

但是,我正在尝试找到一种解决方法MJAVADOC-414,它不涉及降级 3 个发行版本的过度杀伤力。有谁知道一种解决方法,可以以不涉及降级的替代方式成功消除有关丢失类引用的错误消息?

4

1 回答 1

2

我目前与 maven-javadoc-plugin 一起成功使用的一种潜在的非降级解决方法2.10.2涉及向插件的所有测试相关执行添加一个小配置,包括以下目标:test-javadoc、、、、和。test-javadoc-noforktest-aggregatetest-jartest-aggregate-jartest-fixtest-resource-bundle

一旦您确定了针对列出目标的执行,您只需将以下配置添加到该执行:

<!-- Additional Dependencies workaround for MJAVADOC-414 -->
<additionalDependencies>
    <additionalDependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>${project.artifactId}</artifactId>
        <version>${project.version}</version>
    </additionalDependency>
</additionalDependencies>

此解决方法使用 additionalDependencies 标记在插件执行期间将依赖项添加到类路径。添加的依赖项是使用 groupId、artifactId 和 version 的项目变量定义的。实际上,我们正在将当前 POM 定义的项目添加到 maven-javadoc-plugin 测试执行的类路径中。

通过相对变量定义依赖关系使得这个解决方案对于单个 POM 和多个 POM 项目都是安全的。此解决方案也可以成功地与 pluginManagement 声明一起使用。如果您不小心将此解决方案添加到与测试阶段无关的执行中,它应该是无害的,但它可能是重复的,并且可能会增加执行时间。

于 2015-04-05T11:39:20.313 回答