我们有一个Bamboo版本的构建,其中包含一个用于混合Scala / java项目的多模块Maven构建任务。
该版本已经运行了好几个月,但今天开始失败。
Maven成功构建了多个模块,然后在特定模块上始终失败,并显示以下错误:
[ERROR] No compiler is provided in this environment.
Perhaps you are running on a JRE rather than a JDK?
但是,已安装JDK,如果我登录到Bamboo服务器并仅为该模块手动运行maven,则该模块可以编译并正常构建。
JAVA_HOME
似乎在Bamboo服务器上已正确设置,并指向有效的JDK,因此我可以运行javac -version
而不会出现问题。
最近未对此服务器进行任何更新。
我们如何解决此问题?
答案 0 :(得分:0)
我找到了问题所在(虽然不是根本原因)。
失败的Maven模块是第一个包含Java源文件(而不是纯scala)的模块,因此它是Maven尝试为其调用javac
的第一个模块。
Bamboo中的Maven任务指定了一个特定的名为JDK的配置文件。
检查此JDK的Bamboo设置后,我发现它设置为实际上指向JRE的路径(如原始错误消息所示)。
(JRE不好,因为它不包括javac
编译器和其他构建工具)。
目前尚不清楚此路径是如何更改/损坏的(没有其他人可以访问服务器,因此这表明Bamboo本身存在问题),但是编辑此路径以指向已安装的JDK可以再次修复该构建。