问题解决: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参数列表

随缘求赞

如果我的文章对大家产生了帮忙,可以在文章底部点个赞或者收藏;
如果有好的讨论,可以留言;
如果想继续查看我以后的文章,可以点击关注
可以扫描以下二维码,关注我的公众号:枫夜之求索阁,查看我最新的分享!
在这里插入图片描述
拜拜

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