Scala Compiler throws: java.lang.IllegalAccessError: Class 'scala.tools.nsc.transform.patmat.PatternExpansion$ExtractorAlignment'

Scala Compiler throws: java.lang.IllegalAccessError: Class 'scala.tools.nsc.transform.patmat.PatternExpansion$ExtractorAlignment'

将我的一个项目升级到 scala 2.13.4 后,出现以下错误:

[error] java.lang.IllegalAccessError: Class 'scala.tools.nsc.transform.patmat.PatternExpansion$ExtractorAlignment' no access to: class 'scala.collection.immutable.LazyList$State'
[error]     at java.base/java.lang.invoke.MethodHandle.sendResolveMethodHandle(MethodHandle.java:1237)
[error]     at java.base/java.lang.invoke.MethodHandle.getCPMethodHandleAt(Native Method)
[error]     at java.base/java.lang.invoke.MethodHandle.getAdditionalBsmArg(MethodHandle.java:935)
[error]     at java.base/java.lang.invoke.MethodHandle.resolveInvokeDynamic(MethodHandle.java:1084)
[error]     at scala.tools.nsc.transform.patmat.PatternExpansion$ExtractorAlignment.fromProductSelectors(PatternExpansion.scala:166)

(这里有完整的堆栈跟踪 https://gist.github.com/froth/f4819191644ef6ced0be682ad55f8fa0,因为它很长)

我没有更改代码库中的任何内容,也没有在我的项目中主动使用 LazyList。 使事情更加复杂:它在我的机器上工作并且在管道中失败(相同的 java 版本,相同的 sbt 版本(sbt 1.4.4(AdoptOpenJDK Java 11.0.8)),我清除了所有缓存) .

这是一个多项目构建,顶层 build.sbt 看起来像 https://gist.github.com/froth/516c4ea6f8bd98ed87e6a8cadaa117d1 and in the subproject it is the following: https://gist.github.com/froth/03af73900724f47154a0b2477edb47ca

因为它很难重现,而且它是一个具有更多内部依赖性的内部项目,所以我只能提供这些。

我的问题是:有谁知道是什么原因造成的以及我能做什么。或者,如果有人有想法如何进一步调试它或尝试获取有关问题所在的更多信息。

我们最终可以通过将 java 从 11.0.8 升级到 11.0.9 (AdoptOpenJDK) 来解决这个问题。为什么以及如何工作?不知道。