如何在 Maven Javadoc 插件中禁用 Javadoc 警告?

Posted

技术标签:

【中文标题】如何在 Maven Javadoc 插件中禁用 Javadoc 警告?【英文标题】:How to disable Javadoc warnings in Maven Javadoc Plugin? 【发布时间】:2017-01-29 16:36:02 【问题描述】:

我正在使用 Maven Javadoc 插件。它输出警告如下:

[ERROR] /home/monperrus/spoon/src/main/java/spoon/visitor/CtVisitor.java:144:
      warning: no @param for <T>

如何将这些警告显示为[WARNING](而不是令人困惑的[ERROR])?

【问题讨论】:

Maven is not working in Java 8 when Javadoc tags are incomplete的可能重复 如果对@Martin 有帮助,请记得接受答案。 【参考方案1】:

编译所有答案并添加其他内容,我们有以下内容。

要配置 maven 项目,您应该将其添加到 pom 文件中:

<plugins>
   <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-javadoc-plugin</artifactId>
      <configuration>
         <additionalJOption>-Xdoclint:none</additionalJOption>
      </configuration>
   </plugin>
</plugins>

对于 Maven 2.9+,您需要 additionalJOption,在此之前您需要 additionalparam。您可以在 Maven 2.9+ 上使用 additionalparam,因为它不会导致错误,但不会使其工作。我没有在早期版本的 maven 上测试过 additionalJOption

要从命令行配置它,你应该传递这个参数:

mvn <goals> -Dadditionalparam=-Xdoclint:none -DadditionalJOption=-Xdoclint:none

要在你的 shell 环境中配置它,以便它每次都适用于每个项目,而你不需要做任何其他事情,将此行添加到你的 shell 初始化中(~/.bashrc 或在 Mac 上~/.bash_profile,或者你的 shell 使用的其他任何东西):

export JAVA_TOOL_OPTIONS="-Dadditionalparam=-Xdoclint:none -DadditionalJOption=-Xdoclint:none"

或者,如果您有 JAVA_TOOL_OPTIONS,请将这些参数附加到它。

【讨论】:

【参考方案2】:

从 v3.0.0 开始,添加了新的 doclint 配置选项来配置文档 linting。这可用于抑制这些警告。

<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>3.1.1</version>
    <configuration>
      <doclint>none</doclint>  <!-- Turnoff all checks -->
    </configuration>
    <executions>
      <execution>
        <id>attach-javadocs</id>
        <goals>
          <goal>jar</goal>
        </goals>
      </execution>
    </executions>
  </plugin>
</plugins>

对于

<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <configuration>
      <additionalparam>-Xdoclint:none</additionalparam>  <!-- Turnoff all checks -->
    </configuration>
    <!-- executions.... -->
  </plugin>
</plugins>

【讨论】:

【参考方案3】:

maven-javadoc-plugin 2.9 版以后,设置附加参数,似乎不起作用。需要设置的新选项是 additionalJOption(请参阅documentation)。这里有一个例子:

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <configuration>
            <additionalJOption>-Xdoclint:none</additionalJOption>
        </configuration>
   </plugin>

请注意,警告仍会显示在控制台中,但不会带有令人困惑的“[ERROR]”前缀。

还要注意,根据maven-javadoc-plugin 的代码,如果至少有一个Javadoc 错误,所有日志行都将以[ERROR] 为前缀。

【讨论】:

【参考方案4】:

如何将这些警告显示为 [WARNING](而不是令人困惑的 [ERROR])?如何在 Maven 中完全禁用 Javadoc 警告?

如果您谈论的是 Java 8 中引入的 javadoc lint 警告,那么您应该能够执行以下操作。根据您使用的 javadoc 插件的版本,有多种指定参数的方法。

<plugins>
   <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-javadoc-plugin</artifactId>
      <configuration>
         <additionalparam>-Xdoclint:none</additionalparam>
         <additionalOptions>-Xdoclint:none</additionalOptions>
         <additionalJOption>-Xdoclint:none</additionalJOption>
      </configuration>
   </plugin>
</plugins>

看到这个good discussion about turning off doclint。

如果您只是想摆脱缺少的 jacadocs 警告,那么您可以使用:

<configuration>
   <additionalparam>-Xdoclint:all -Xdoclint:-missing</additionalparam>
   <additionalOptions>-Xdoclint:all -Xdoclint:-missing</additionalOptions>
   <additionalJOptions>
     <additionalJOption>-Xdoclint:all</additionalJOption>
     <additionalJOption>-Xdoclint:-missing</additionalJOption>
   </additionalJOptions>
</configuration>

【讨论】:

【参考方案5】:

maven-javadoc-plugin 3.0.0 版开始,您可以使用doclint 配置参数。如果您只想禁用“丢失”警告,请使用all,-missing

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>3.0.1</version>
    <configuration>
        <doclint>all,-missing</doclint>
    </configuration>
</plugin>

欲了解更多信息,请参阅the doclint parameter documentation。

【讨论】:

【参考方案6】:

您也可以从命令行禁用它,以防您只想在本地抑制而不是编码。

mvn clean install -Dadditionalparam=-Xdoclint:none

正如 Spring Monkey 指出的那样,在较新的版本中,您可能必须将其传递为

mvn clean install -DadditionalJOption=-Xdoclint:none

【讨论】:

-DadditionalJOption=-Xdoclint:none 选项传递给mvn 对我有用。 也可以在mvn命令行中添加-Ddoclint=nonemaven.apache.org/plugins/maven-javadoc-plugin/…

以上是关于如何在 Maven Javadoc 插件中禁用 Javadoc 警告?的主要内容,如果未能解决你的问题,请参考以下文章

Maven Javadoc 插件 javadoc-bundle-options

如何在所有模块构建完成后执行maven插件

maven 常用插件总结

如何在 Maven 发布插件上禁用标签创建

禁用父 POM 中定义的 Maven 插件

Maven打包生成源码包和Javadoc包