gradle - Groovy v2.5.4的INDY版本在哪里?

标签 gradle groovy

当我将Gradle v5.2 bundle 与Groovy v2.5.4一起迁移到Gradle 5时,我的构建就破裂了。这些项目使用Groovy的dynamic support构建。

  • Invoke dynamic support
  • groovy-all-2.5.4-indy.jar

  • JCenter或MavenCentral都无法解析此文件。但是我确实在这里找到了一个副本:
  • Sonatyoe repo:https://repo1.maven.org/maven2/org/codehaus/groovy/groovy-all/2.5.4/
  • 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()
  • 所涉及的JAR都没有提供这两个选项。

  • 最后一个难题是我们运行了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/

    相关文章:

    spring - Mybatis映射器返回空值。在 Spring -rest-mybatis-mysql-gradle

    java - 让 IntelliJ 识别 AnnotationProcessor 生成的类

    gradle - 是否可以从同一个子项目并行运行两个独立的 gradle 任务?

    用于删除 nexus 3 上的工件的 groovy 脚本(不是 nexus 2)

    java - 选择带逗号的字符串(正则表达式)

    oracle - 存储过程命名参数

    java - Spring Boot HTTP GET 自定义验证

    kotlin - Gradle 6.4、Kotlin 和 JPMS

    java.lang.NoClassDefFoundError : com/itextpdf/kernel/pdf/PdfWriter itext and gradle

    java - Groovy 字符串与 Java 字符串