代码之家  ›  专栏  ›  技术社区  ›  icyrock.com

禁用自动下载groovy葡萄

  •  3
  • icyrock.com  · 技术社区  · 14 年前

    示例脚本ss.groovy:

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

    由于某种原因,使用

    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
      ^
    

    是否有一种封闭的方式:

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

    通过包含,我的意思是所有附加指令都应该在脚本中,或者,如果不存在这样的指令,可以接受的默认值(例如,不要检查缓存的工件是否有更新——但是,我仍然希望在全局范围内自动下载)放在一些groovy配置文件(例如~/.groovy/grapeconfig.xml或类似文件)中。

    3 回复  |  直到 11 年前
        1
  •  2
  •   Andre Steingress    11 年前

    更新: 问题已经解决, @GrabConfig(autoDownload=false) 将在groovy 2.2中提供

        2
  •  0
  •   Mark O'Connor    14 年前

    为什么不在本地安装存储库管理器?

    http://nexus.sonatype.org/

    我使用nexus代理和缓存所有第三方存储库。groovy配置为从本地缓存或nexus检索:

    <ivysettings>
      <settings defaultResolver="downloadGrapes"/>
      <resolvers>
        <chain name="downloadGrapes">
          <filesystem name="cachedGrapes">
            <ivy pattern="${user.home}/.groovy/grapes/[organisation]/[module]/ivy-[revision].xml"/>
            <artifact pattern="${user.home}/.groovy/grapes/[organisation]/[module]/[type]s/[artifact]-[revision].[ext]"/>
          </filesystem>
          <!-- Local Nexus Repository -->
          <ibiblio name="nexus" root="http://localhost:8081/nexus/repositories/public" m2compatible="true"/>
        </chain>
      </resolvers>
    </ivysettings>
    
        3
  •  0
  •   icyrock.com    13 年前

    对于当前的(groovy 1.8.1)实现,这似乎是不可能的。我创建了一个改进通知单: http://jira.codehaus.org/browse/GROOVY-4943 .

    推荐文章