中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解決maven:java8下當javadoc有編譯錯誤時無法生成.jar包的問題

發布時間:2021-07-06 18:45:29 來源:億速云 閱讀:254 作者:chen 欄目:大數據

本篇內容主要講解“如何解決maven:java8下當javadoc有編譯錯誤時無法生成.jar包的問題”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何解決maven:java8下當javadoc有編譯錯誤時無法生成.jar包的問題”吧!

之前一直在java 7下編譯maven項目,遇到javadoc編譯提示代碼注釋中有錯誤(比如連接無效),也能正常生成javadoc jar包。但最近將編譯器換成java 8后,同樣的命令執行,遇到javadoc編譯錯誤,maven就中止執行,生成jar包失敗了。

在stackoverflow上找到這篇文章,才搞明白原因:《Maven is not working in Java 8 when Javadoc tags are incomplete》

原來是java 8的DocLint新特性造成的:
java 8中javadoc提供了一個新特性,允許程序能檢測到java 代碼注釋中的錯誤(之前的版本,javadoc調用方無法檢測到代碼注釋中的錯誤),默認情況下這個特性是打開的,所以maven執行編譯javadoc編譯時遇到代碼注釋中有錯誤,就會拋出異常,并中止執行。

最簡單的解決辦法:升級maven-javadoc-plugin插件版本到3.0.0以上,并添加<doclint>none</doclint>參數禁用該特性
示例如下

<plugins>
    <plugin>
        <!--引入javadoc插件 -->
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>3.0.1</version>
        <configuration>
            <show>package</show>
            <!-- 禁用java 8 的DocLint新特性,以確保當javadoc有編譯錯誤時,也能正常生成javadoc jar包-->
            <doclint>none</doclint>
        </configuration>
    </plugin>
</plugins>
但實際測試發現,采用這種方式執行mvn javadoc:jar確實是有效的但在執mvn release:prepare做發布版本準備時,卻沒有生成javadoc jar 包,使用<additionalparam>-Xdoclint:none</additionalparam>代替doclint參數才算正常:

<plugins>
    <plugin>
        <!--引入javadoc插件 -->
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>3.0.1</version>
        <configuration>
            <show>package</show>
            <!-- 禁用java 8 的DocLint新特性,以確保當javadoc有編譯錯誤時,也能正常生成javadoc jar包-->
            <additionalparam>-Xdoclint:none</additionalparam>
        </configuration>
    </plugin>
</plugins>
改成這樣后,在java 8下執行mvn release:prepare是正常了,但在java 7下會報錯誤:不支持的選項-Xdoclint:none。所以如果希望在java 7,java 8下都能正常執行release,需要使用profile來區分JDK版本。刪除前面在build/plugins中添加的javadoc插件,改為在pom.xml中添加profiles,如下:

</project>
    ....
    <profiles>        
        <profile>
            <id>doclint-java8-disable</id>
            <!-- 指定profile只在JDK版本大于等于1.8時有效-->
            <activation>
                <jdk>[1.8,)</jdk>
            </activation>

            <build>
                <pluginManagement>
                    <plugins>
                        <!--引入javadoc插件 -->
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-javadoc-plugin</artifactId>
                            <version>2.9</version>
                            <configuration>
                                <!-- 禁用java 8 的DocLint新特性,以確保當javadoc有編譯錯誤時,也能正常生成javadoc jar包-->
                                <additionalparam>-Xdoclint:none</additionalparam>
                            </configuration>
                        </plugin>
                    </plugins>
                </pluginManagement>
            </build>
        </profile>
    </profiles>
</project>
參考資料
Maven is not working in Java 8 when Javadoc tags are incomplete
maven javadoc-mojo
java 8 doclint
DocLint is a new feature in Java 8
How to ignore Maven build erros due to JavaDoc with Java 8
--------------------- 
 

到此,相信大家對“如何解決maven:java8下當javadoc有編譯錯誤時無法生成.jar包的問題”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临海市| 铜山县| 云安县| 盘锦市| 大连市| 牟定县| 崇信县| 邛崃市| 临高县| 江门市| 葫芦岛市| 古田县| 交城县| 湘潭市| 桐庐县| 格尔木市| 濉溪县| 荆门市| 中超| 洪泽县| 苍山县| 罗江县| 肃北| 富裕县| 三门县| 新民市| 呼玛县| 澜沧| 琼结县| 东方市| 义马市| 威海市| 绥中县| 于田县| 唐河县| 三河市| 涪陵区| 林西县| 普安县| 含山县| 新津县|