groovy - 禁用 Groovy 葡萄的自动下载

标签 groovy groovy-grape

示例脚本 ss.groovy:

@Grab(group='org.codehaus.groovy.modules.http-builder', 
      module='http-builder', 
      version='0.5.0')
import groovyx.net.http.HTTPBuilder

println('done')

由于某些原因,运行时需要约 25 秒来加载

groovy ss.groovy

和运行时约 5 秒

groovy -Dgroovy.grape.autoDownload=false ss.groovy

根据 this StackOverflow explanation .我尝试使用

进行手动初始化
Grape.enableAutoDownload = false
Grape.grab(group:'org.codehaus.groovy.modules.http-builder', 
           module:'http-builder',
           version:'0.5.0')
import groovyx.net.http.HTTPBuilder
println('done')

但是导入失败:

/tmp/ss.groovy: 3: unable to resolve class groovyx.net.http.HTTPBuilder
 @ line 3, column 1.
  import groovyx.net.http.HTTPBuilder
  ^

是否有一种封闭的方式可以:

  • 让它不自动下载工件(首选,因为它允许解决其他问题,例如,当本地缓存中已存在工件时外部站点关闭)
  • 以任何其他方式使其启动更快

包含我的意思是所有额外的指令都应该在脚本中,或者,如果不存在这样的指令,一个可接受的默认值(例如,不检查缓存的工件更新 - 但是,我仍然希望自动下载globally) 放在一些 groovy 配置文件中(例如 ~/.groovy/grapeConfig.xml 或类似文件)。

最佳答案

更新:问题已修复,@GrabConfig(autoDownload=false)将在 Groovy 2.2 中可用

关于groovy - 禁用 Groovy 葡萄的自动下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3632662/

相关文章:

regex - 用于正则表达式匹配的 Groovy 语法

java - 编译错误 - Groovy 和 Lombok

java - 正在缓存 weblogic 服务响应

intellij-idea - @Grab 不能在用于 groovy 的 intellij IDE 中工作

maven - 为什么 Groovy/Grape 不能解析来自 Maven Central 的 Artifact ?

java - 我可以避免使用 Grape 在 Groovy 中加载模块吗?

intellij-idea - 如何获取依赖项并使其与 IntelliJ 项目一起使用?

jenkins - 如何在 Jenkins Groovy Post Build 插件中重用 groovy 脚本?

java - 使用 groovy 中的 map 编写 Excel

groovy - 为什么 Grapes 会抢走一个我没有要的 jar ?