Groovy 1,8 @Grab gagal kecuali saya secara manual memanggil penyelesaian anggur

Saat menjalankan skrip yang menggunakan sistem grape ke @Grab sebuah ketergantungan di repo ibiblio, gagal sampai saya memanggil grape secara manual menyelesaikan dari baris perintah. Setelah itu, ada di cache lokal dan skrip berjalan dengan baik.

Apakah ada penjelasan lain yang perlu saya gunakan untuk membuatnya berfungsi pertama kali dari skrip? Rasanya sulit untuk memberi tahu pengguna terlebih dahulu untuk "menyelesaikan anggur" dan kemudian @Grab berfungsi.

Ini adalah skripnya, mengambil stoples jedi untuk redis:

#!/usr/bin/env groovy
@Grab('redis.clients:jedis:2.0.0')

import redis.clients.jedis.*

Jedis redis = new Jedis("localhost")

Yang gagal dengan pengecualian ini jika saya memiliki ~ / .groovy yang bersih / grapes cache:

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]

Ini hanya berjalan setelah saya menjalankan penyelesaian anggur secara manual dari baris perintah:

grape -V resolve redis.clients jedis 2.0.0

(bagian dari keluaran menunjukkan itu mengunduh dari 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)
...

Setelah itu di lokal cache, skrip berfungsi dengan baik dengan @Grab.

Saya belum menambahkan file ~ / .groovy / grapeConfig.xml secara manual jadi ini menggunakan file default yang disertakan dengan groovy. Saya menggunakan groovy 1.8:

groovy -v
Groovy Version: 1.8.0 JVM: 1.6.0_24

Saya mencoba menambahkan ini secara manual di atas pegangan:

@GrabResolver(name='ibiblio', m2Compatible='true', root='http://repo1.maven.org/maven2/')

tetapi itu tidak membantu. Apakah saya melewatkan sesuatu?

5
задан tim_yates 14 June 2011 в 08:59
поделиться