Ted*_*eid 5 groovy ruby-grape ivy maven
当运行使用葡萄系统的脚本来获取ibiblio repo中的依赖关系时,它会失败直到我grape resolve从命令行手动调用.之后,它在本地缓存中,脚本运行正常.
是否有一些其他注释需要用来让它第一次从脚本中运行?告诉用户首先"葡萄解决",然后@Grab工作,感觉很奇怪.
这是脚本,抓住了redis的jedis jar:
#!/usr/bin/env groovy
@Grab('redis.clients:jedis:2.0.0')
import redis.clients.jedis.*
Jedis redis = new Jedis("localhost")
Run Code Online (Sandbox Code Playgroud)
如果我有一个干净的〜/ .groovy/grape缓存,则会因此异常而失败:
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]
Run Code Online (Sandbox Code Playgroud)
它只在我grape resolve从命令行手动执行后运行:
grape -V resolve redis.clients jedis 2.0.0
Run Code Online (Sandbox Code Playgroud)
(部分输出显示它是从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)
...
Run Code Online (Sandbox Code Playgroud)
在它位于本地缓存之后,该脚本可以正常使用@Grab.
我没有手动添加〜/ .groovy/grapeConfig.xml文件,所以它使用了groovy附带的默认文件.我正在使用groovy 1.8:
groovy -v
Groovy Version: 1.8.0 JVM: 1.6.0_24
Run Code Online (Sandbox Code Playgroud)
我尝试在抓斗上方手动添加:
@GrabResolver(name='ibiblio', m2Compatible='true', root='http://repo1.maven.org/maven2/')
Run Code Online (Sandbox Code Playgroud)
但这没有帮助.我错过了什么吗?
您可以尝试将此文件命名为 ~.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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5082 次 |
| 最近记录: |