当我将Gradle v5.2与Groovy v2.5.4捆绑在一起时,我的构建中断了,因为我转移到Gradle 5。这些项目使用dynamic support构建的Groovy。
groovy-all-2.5.4-indy.jar
JCenter或MavenCentral都无法解析此文件。但是我确实在这里找到了副本:
groovy-2.5.4-indy.jar
groovy-all-2.5.4-indy.jar
我不确定Gradle如何“解析”此文件并实际找到它。
谁能告诉我我应该从这个JAR文件中获取文件吗?
org.codehaus.groovy:groovy-all:2.5.4:indy
” 这是一个错误还是我只是在错误的位置查找(请参阅#1)?
build.gradle
是我在使用jcenter()
,并尝试将其更改为mavenCentral()
。最后一个麻烦是我们运行了Nexus实例。有什么方法可以迫使Nexus走出去寻找这个JAR吗?
答案 0 :(得分:1)
这不是完全结论,但是似乎-indy
jar在2.5.0之前的常规版本中存在,因为这些版本支持1.7之前的Java版本。
印地坛在那里,因此您可以有选择地启用对Java 1.7中引入的invokedynamic指令的支持,同时仍支持1.7之前的Java版本,其中不包含invokedynamic(groovy docs for indy)。
似乎groovy 2.5达到了最低的jdk要求,引用:
JDK需求变更 Groovy 2.5需要JDK8 +来构建,而JDK7是我们支持的JRE的最低版本。
(来自http://groovy-lang.org/releasenotes/groovy-2.5.html)
这将使支持调用动态和没有不必要的全部双重性成为可能。
所以我的猜测是,他们只是转储了indy jar,并始终在常规groovy jar文件集中包含invokedynamic指令,因为所需的jdk版本将始终包含该指令。