Eclipse Oxygen+Java 1.8.0环境下SonarLint配置遇JRE版本问题求助
问题解答
1. 规则对Java版本的要求
部分SonarQube规则(尤其是新版语言插件,比如你遇到的Kotlin插件)确实要求运行环境为Java 11及以上。SonarSource从较新版本的插件开始,将运行时依赖提升到Java 11,一方面是为了利用JDK 11的新特性,另一方面也是停止对旧JDK的维护支持。你日志里出现的插件加载跳过,就是因为这些插件的运行时要求高于当前的Java 8环境。
2. 让SonarLint单独使用Java 11
完全可以实现SonarLint用Java 11运行,同时项目继续使用Java 8编译、运行,两者互不冲突。具体操作步骤:
- 先下载并安装Java 11 JDK/JRE(无需卸载Java 8)
- 打开Eclipse,依次进入
Window > Preferences > SonarLint > Runtime - 在
SonarLint Runtime区域点击Add按钮,选择你安装的Java 11 JDK/JRE路径完成添加 - 将新添加的Java 11设置为SonarLint的默认运行时
- 重启Eclipse,重新触发SonarLint分析
配置完成后,SonarLint引擎会用Java 11启动加载所需插件,而你的项目依然可以保持Java 8的编译和运行环境。
3. 额外注意事项
- 你使用的SonarLint 6.2.0版本本身支持Java 11运行时,无需担心兼容性问题
- 如果远程SonarQube服务器版本较高,其附带的插件可能普遍要求Java 11,这种情况下升级SonarLint运行时是唯一可行的解决办法
内容的提问来源于stack exchange,提问作者Paolino77
相关产品推荐
相关产品推荐

