java - 是否有针对 maven-javadoc-plugin 错误 MJAVADOC-414 的解决方法?

标签 java maven testing javadoc maven-javadoc-plugin

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

此错误发生在 maven-javadoc-plugin 版本 2.102.10.12.10.2 上。这个错误是官方公认的bugMJAVADOC-414,可以查看bug报告here .官方错误报告列出了一个解决方法,涉及将插件降级到版本 2.9.1,我已经确认这是一个成功的错误解决方法。还值得注意的是,该错误目前已被列为已修复,应该会在下一个版本的 maven-javadoc-plugin 中消除,该版本可能是 2.11 2.10.3.

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

最佳答案

我目前成功使用 maven-javadoc-plugin 2.10.2 的潜在非降级解决方法涉及向插件的所有测试相关执行添加一个小配置,包括以下目标: test-javadoc, test-javadoc-nofork, test-aggregate, test-jar, 测试-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 和版本的项目变量定义的。实际上,我们将当前 POM 定义的项目添加到 maven-javadoc-plugin 测试执行的类路径中。

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

关于java - 是否有针对 maven-javadoc-plugin 错误 MJAVADOC-414 的解决方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29456863/

相关文章:

caching - 您如何测试 Varnish 配置或一般的缓存层

java - 蓝牙连接失败 "java.io.IOException: read failed, socket might closed or timeout, read ret: -1"

java - Jetty maven 插件 9.4.12 与 Java 11

PhpSpec - 检查方法返回一个整数而不是 "willReturn(x)"

unit-testing - 排除多个组 TestNG

postgresql - liquibase:dropAll 还应该删除触发函数

java - 自定义联接表使 Spring Data 抛出 IllegalArgumentException : Expected id attribute type

java - 通过 Java 扩展 Kotlin 类需要我重新实现已经实现的方法

java - 使用 'new' 而不使用 'xyz = new abc'

java - 如何将多个 KieModule 部署到单个 KieBase 中