问题描述
||
当运行使用grape系统来@ibrabio仓库中的依赖项的脚本时,脚本失败,直到我从命令行手动调用“ 0”。之后,它位于本地缓存中,脚本运行正常。
我还需要使用其他一些注释来使它在脚本中首次运行吗?告诉用户首先“葡萄柚解决”然后@Grab起作用是一种困惑。
这是脚本,抓住jedis jar进行redis:
#!/usr/bin/env groovy
@Grab(\'redis.clients:jedis:2.0.0\')
import redis.clients.jedis.*
Jedis redis = new Jedis(\"localhost\")
如果我有一个干净的〜/ .groovy / grapes缓存,则此异常失败:
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
General error during conversion: Error grabbing Grapes -- [unresolved dependency: redis.clients#jedis;2.0.0: ibiblio: unable to get resource for redis/clients#jedis;2.0.0: res=/redis/clients/jedis/2.0.0/jedis-2.0.0.pom: java.net.MalformedURLException: no protocol: /redis/clients/jedis/2.0.0/jedis-2.0.0.pom]
它仅在我从命令行手动执行grape resolve
时运行:
grape -V resolve redis.clients jedis 2.0.0
(输出的一部分显示了它是从ibiblio下载的):
...
ibiblio: found md file for redis.clients#jedis;2.0.0
=> http://repo1.maven.org/maven2/redis/clients/jedis/2.0.0/jedis-2.0.0.pom (2.0.0)
downloading http://repo1.maven.org/maven2/redis/clients/jedis/2.0.0/jedis-2.0.0.pom ...
ibiblio: downloading http://repo1.maven.org/maven2/redis/clients/jedis/2.0.0/jedis-2.0.0.pom
ibiblio: downloading http://repo1.maven.org/maven2/redis/clients/jedis/2.0.0/jedis-2.0.0.pom.sha1
sha1 OK for http://repo1.maven.org/maven2/redis/clients/jedis/2.0.0/jedis-2.0.0.pom
[SUCCESSFUL ] redis.clients#jedis;2.0.0!jedis.pom(pom.original) (1184ms)
...
将其放在本地缓存中后,该脚本可以与@Grab正常工作。
我尚未手动添加〜/ .groovy / grapeConfig.xml文件,因此它使用的是groovy附带的默认文件。我正在使用groovy 1.8:
groovy -v
Groovy Version: 1.8.0 JVM: 1.6.0_24
我尝试将其手动添加到抓斗上方:
@GrabResolver(name=\'ibiblio\',m2Compatible=\'true\',root=\'http://repo1.maven.org/maven2/\')
但这没有帮助。我想念什么吗?
解决方法
您可以尝试将此文件放置为〜.groovy \\ grapeConfig.xml吗,您可能会遇到一些环境配置问题:
<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>
<ibiblio name=\"ibiblio\" m2compatible=\"true\"/>
</chain>
</resolvers>
</ivysettings>
, 找到问题所在的葡萄下载并排除
@GrabExclude(\“ logkit:logkit \”),
然后找到问题下载并使用将其放入您的存档中
mvn install:安装文件
将您在本地安装的文件添加到Grape