当我将Gradle v5.2 bundle 与Groovy v2.5.4一起迁移到Gradle 5时,我的构建就破裂了。这些项目使用Groovy的dynamic support构建。
groovy-all-2.5.4-indy.jar
JCenter或MavenCentral都无法解析此文件。但是我确实在这里找到了一个副本:
groovy-2.5.4-indy.jar
groovy-all-2.5.4-indy.jar
我不确定Gradle可以做什么来“解析”此文件并实际找到它。
org.codehaus.groovy:groovy-all:2.5.4:indy
” build.gradle
我正在使用jcenter()
,并尝试将其更改为mavenCentral()
。 最后一个难题是我们运行了Nexus实例。有什么方法可以迫使Nexus走到外面寻找这个JAR吗?
最佳答案
这并不完全是结论性的,但是似乎-indy
jar在2.5.0之前的groovy版本中存在,因为这些版本支持1.7之前的Java版本。
印加缸在那里,因此您可以有选择地启用对Java 1.7中引入的invokedynamic指令的支持,同时仍支持1.7之前的Java版本,该版本不包含invokedynamic(groovy docs for indy)。
似乎groovy 2.5达到了最低的jdk要求,引用:
JDK requirements changes Groovy 2.5 requires JDK8+ to build and JDK7 is the minimum version of the JRE that we support.
(来自http://groovy-lang.org/releasenotes/groovy-2.5.html)
这将使支持调用动态和没有不必要的整个双重性成为可能。
所以我的猜测是,他们只是转储了Indy jar,并始终在常规groovy jar文件集中包含invokedynamic指令,因为所需的jdk版本将始终包含该指令。
关于gradle - Groovy v2.5.4的INDY版本在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54756380/