maven項目install時候一直報錯,檢查Maven-javadoc-plugin聲明錯誤(Java 8 配置Maven-javadoc-plugin)或者是:警告: @throws 沒有說明


在升級JDK至1.8之后,使用Maven-javadoc-plugin插件打包報錯,[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.10.4:jar (attach-javadocs) on project 詳細信息如下

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.10.4:jar (attach-javadocs) on project StatisticsReport: MavenReportException: Error while generating Javadoc:
[ERROR] Exit code: 1 - D:\Multi-module-project\StatisticsReport\src\main\java\com\yuewen\statistics\report\service\db\PullData.java:29: 警告: @param 沒有說明
[ERROR] @param preparedStatement
[ERROR] ^
[ERROR] D:\Multi-module-project\StatisticsReport\src\main\java\com\yuewen\statistics\report\service\db\PullData.java:30: 警告: @param 沒有說明
[ERROR] 
@param params
[ERROR] ^
[ERROR] D:\Multi-module-project\StatisticsReport\src\main\java\com\yuewen\statistics\report\service\db\PullData.java:31: 警告: @return 沒有說明
[ERROR] @return
[ERROR] ^
[ERROR] D:\Multi-module-project\StatisticsReport\src\main\java\com\yuewen\statistics\report\service\db\PullData.java:32: 警告: @throws 沒有說明
[ERROR] 
@throws SQLException
[ERROR] ^
[ERROR] D:\Multi-module-project\StatisticsReport\src\main\java\com\yuewen\statistics\report\service\db\PullData.java:34: 警告: logFlag沒有 @param
[ERROR] public static ResultSet pullData(PreparedStatement preparedStatement, boolean logFlag, String… params) throws SQLException {
[ERROR] ^
[ERROR] D:\Multi-module-project\StatisticsReport\src\main\java\com\yuewen\statistics\report\service\db\PullData.java:51: 警告: @param 沒有說明
[ERROR] @param preparedStatement
[ERROR] ^
[ERROR] D:\Multi-module-project\StatisticsReport\src\main\java\com\yuewen\statistics\report\service\db\PullData.java:52: 警告: @param 沒有說明
[ERROR] 
@param params
[ERROR] ^
[ERROR] D:\Multi-module-project\StatisticsReport\src\main\java\com\yuewen\statistics\report\service\db\PullData.java:53: 警告: @return 沒有說明
[ERROR] * @return
[ERROR] ^

經查得知,在JDK 8中,Javadoc中添加了doclint,而這個工具的主要目的是旨在獲得符合W3C HTML 4.01標准規范的HTML文檔,在JDK 8中,已經無法獲取如下的Javadoc,除非它滿足doclint

  • 不能有自關閉的HTML tags,例如<br/>或者<a id="x"/>
  • 不能有未關閉的HTML tags,例如有<ul>而沒有</ul>
  • 不能有非法的HTML end tags,例如</br>
  • 不能有非法的HTML attributes,需要符合doclint基於W3C HTML 4.01的實現
  • 不能有重復的HTML id attribute
  • 不能有空的HTML href attribute
  • 不能有不正確的嵌套標題,例如類的文檔說明中必須有<h3>而不是<h4>
  • 不能有非法的HTML tags,例如List<String>需要用<>對應的實體符號
  • 不能有損壞的@link references
  • 不能有損壞的@param references,它們必須匹配實際的參數名稱
  • 不能有損壞的@throws references,第一個詞必須是一個類名稱

注意違反這些規則的話,將不會得到Javadoc的輸出。

一種解決辦法就是關閉doclint,如果你在Maven中運行,你需要使用additionalparam設置:

<profiles>
<profile>
<id>disable-javadoc-doclint</id>
<activation>
<jdk>[1.8,)</jdk>
</activation>
<properties>
<additionalparam>-Xdoclint:none</additionalparam>
</properties>
</profile>
</profiles>

或者是添加到maven-javadoc-plugin中: 

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.4</version>
<configuration>
<encoding>${chartset.UTF8}</encoding>
<aggregate>true</aggregate>
<charset>${chartset.UTF8}</charset>
<docencoding>${chartset.UTF8}</docencoding>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<additionalparam>-Xdoclint:none</additionalparam>
</configuration>
</execution>
</executions>
</plugin>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM