問題場景
下載了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-parent
的pom.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>
總結
通過官方文檔找到問題原因,並根據該原因,博主提供了兩種解決方案。這個過程,再次告訴了我們,出現問題最好先去官方文檔找找看,不要一開始就漫天地去百度或者谷歌問題的答案。
參考文檔
隨緣求贊
如果我的文章對大家產生了幫忙,可以在文章底部點個贊或者收藏;
如果有好的討論,可以留言;
如果想繼續查看我以後的文章,可以點擊關注
可以掃描以下二維碼,關注我的公衆號:楓夜之求索閣,查看我最新的分享!