問題解決:flyway源碼編譯,報:flyway-core: Fatal error compiling: 無效的標記: --release

問題場景

下載了flyway的源碼到本地研究。因爲本地環境是idea+maven,所以我一般新項目都會先編譯一次,在編譯的時候,就會將依賴都下載下來。有時候idea的依賴管理會很奇葩的,如果不編譯一下,一些依賴有時候就是死活下載不下來。
在這裏插入圖片描述
但是運行的時候,竟然出錯了。我什麼東西都沒改,直接拿官方的東西下來運行,都不行!!!
在這裏插入圖片描述
報錯提示如下:

ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project flyway-core: Fatal error compiling: 無效的標記: --release -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

問題環境

軟件 版本
IntelliJ IDEA 2019.1
maven 3.2.3
JDK 1.8
flyway 2020-06-04的版本

問題原因

首先,問題提示已經說明了原因所在,這個是因爲插件maven-compiler-plugin不識別release標誌。那麼,爲什麼不識別呢?我們到maven官方網站查找插件maven-compiler-plugin的文檔,找到以下描述:
在這裏插入圖片描述
從博客的問題環境裏面,我們可以知道,我們當前環境是JDK8,是不識別release標誌的,所以提示報錯。

解決方案

找到問題了,這裏有兩種解決方案:

將JDK版本進行升級(推薦)

既然是JDK版本過低,那升級JDK版本是最好的辦法,可以一勞永逸地解決這個問題。而本篇博客的開發環境是使用JDK8,那麼更換爲JDK9,然後再執行編譯運行。結果如下:

[INFO] — maven-compiler-plugin:3.8.1:compile (default-compile) @ flyway-core —
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 336 source files to D:\code\github\flyway\flyway-core\target\classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 15.756 s
[INFO] Finished at: 2020-06-04T12:29:25+08:00
[INFO] Final Memory: 17M/58M

pom.xml 註釋掉 <release>8</release>

如果沒辦法升級JDK版本,那直接將pom.xml文件裏面的maven-compiler-plugin的配置項release註釋掉,然後重新跑。而本文是針對flyway源碼進行編譯,這裏的插件位置是在fly-parentpom.xml文件裏面。註釋之後,再進行編譯運行,結果和上一步是一樣的,都是順利跑通了,xml關於該配置如下:

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <!--<release>8</release>-->
        <source>1.8</source>
        <target>1.8</target>
        <encoding>UTF-8</encoding>
    </configuration>
</plugin>

在這裏插入圖片描述

總結

通過官方文檔找到問題原因,並根據該原因,博主提供了兩種解決方案。這個過程,再次告訴了我們,出現問題最好先去官方文檔找找看,不要一開始就漫天地去百度或者谷歌問題的答案。

參考文檔

maven-compiler-plugin參數列表

隨緣求贊

如果我的文章對大家產生了幫忙,可以在文章底部點個贊或者收藏;
如果有好的討論,可以留言;
如果想繼續查看我以後的文章,可以點擊關注
可以掃描以下二維碼,關注我的公衆號:楓夜之求索閣,查看我最新的分享!
在這裏插入圖片描述
拜拜

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章