【问题标题】:Unable to build Maven project due to Javadoc error?由于 Javadoc 错误,无法构建 Maven 项目?
【发布时间】:2014-06-25 21:51:15
【问题描述】:

有没有人遇到过如下类似的 Maven 错误?

由于以下错误,我无法构建我的项目。在我开始编写代码之前,一切正常。

我什至没有处理下面定义的接口,它似乎与 Javadoc 相关?

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.9.1:jar (attach-javadocs) on project jonney-project: MavenReportException: Error while creating archive:

[ERROR] Exit code: 1 - /Users/me/Work/myProject/library/src/main/java/com/me/someInterface.java:45: warning: no @return
[ERROR] public abstract boolean searchForDevce();
[ERROR] ^
[ERROR] /Users/me/Work/myProject/src/main/java/com/me/someInterfaceAgain.java:52: warning: no @return
[ERROR] public abstract boolean selectDevice(int pos);
[ERROR] ^

【问题讨论】:

    标签: maven javadoc


    【解决方案1】:

    我猜你切换到 Java 8。在这个版本中,Javadoc 的要求更严格。

    你有三个选择:

    1. 修复错误
    2. 禁用严格检查
    3. 构建时跳过 Javadoc

    要禁用严格检查,请将其添加到您的 pom.xml

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

    要在构建时跳过 Javadoc,请使用:

    mvn -Dmaven.javadoc.skip=true verify
    

    Further Information

    【讨论】:

    • 你拯救了我的一周
    • 这不适用于 maven-javadoc-plugin 版本 3.0.0。我必须回到版本 3.0.0-M1 才能使 -Xdoclint:none 工作。
    • 真心感谢。我无法修复所有错误。
    • 让我完成这项工作的唯一方法就是完全跳过javadoc - 感谢您的提示。已经浪费了超过 1 小时跳其他篮球......
    • 注意:使用 maven-javadoc-plugin 版本 3.0.0 &lt;additionalparam&gt; 已被 &lt;additionalOptions&gt; 取代
    【解决方案2】:

    只需使用属性标签更新您的 pom.xml,如下所示。

    <properties>
        <additionalparam>-Xdoclint:none</additionalparam>
    </properties>
    

    【讨论】:

    【解决方案3】:

    使用 ma​​ven-javadoc-plugin 版本 3.0.0 &lt;additionalparam/&gt; 已被 &lt;additionalOptions/&gt; 替换。为了将错误减少为警告,这个 pom.xml 条目对我有用:

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <executions>
                    <execution>
                        <id>attach-javadocs</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <additionalOptions>
                        <additionalOption>-Xdoclint:none</additionalOption>
                    </additionalOptions>
                </configuration>
            </plugin>
        </plugins>
    </build>
    

    【讨论】:

    • 使用 maven-javadoc-plugin >= 3.0 我们现在有了&lt;doclint&gt;none&lt;/doclint&gt;(参见this bug report
    【解决方案4】:

    对于那些在谷歌上搜索此错误的人的更新: 如果项目使用源/目标 8,在 javadoc 配置中添加 8 应该使项目可在 jdk {11、12、13} 上构建:

    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <configuration>
      <source>8</source>
    </configuration>
     ...
    

    【讨论】:

      【解决方案5】:

      在使用 3.2.0 版本时,上述选项似乎都不适合我。相反,我注意到failOnError 选项。将此标签值设置为 false 似乎可以让我的构建成功,即使存在 javadoc 错误。

              <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-javadoc-plugin</artifactId>
                  <version>${maven.javadoc.plugin.version}</version>
                  <executions>
                      <execution>
                          <id>attach-javadocs</id>
                          <goals>
                              <goal>jar</goal>
                          </goals>
                      </execution>
                  </executions>
                  <configuration>
                      <failOnError>false</failOnError>
                  </configuration>
              </plugin>
      

      这将停止为 maven 项目生成 javadoc jar。在我的情况下这没问题,因为我只想在正在进行的开发过程中构建没有错误。其他选项可能仍然允许在出现错误时生成 javadoc jar。

      【讨论】:

        【解决方案6】:

        @turbanoff 从 3.0.0 版开始提到,maven-javadoc-plugin 配置设置 &lt;additionalparam&gt; 已被 &lt;additionalOptions&gt; 取代

        所以你的 pom.xml 中的插件定义可以如下所示:

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

        此配置仍会生成警告。所以你可以而且应该在你的代码中修复它们。但它现在将不再破坏 maven 构建。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-03-07
          • 1970-01-01
          • 1970-01-01
          • 2011-11-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多