2008-10-10 4 views
12

Ich habe versucht, die neue Groovy Grape Fähigkeit in Groovy 1.6-Beta-2 zu verwenden, aber ich bekomme eine Fehlermeldung;Groovy's Grape Going!

unable to resolve class com.jidesoft.swing.JideSplitButton 

vom Groovy Console (/opt/groovy/groovy-1.6-beta-2/bin/groovyConsole), wenn das Beispiel Lager läuft;

Ich habe sogar versucht, das Grapebefehlszeilenprogramm auszuführen, um sicherzustellen, dass die Bibliothek importiert wird. So was;

$ /opt/groovy/groovy-1.6-beta-2/bin/grape install com.jidesoft jide-oss 

die Installation der Bibliothek funktioniert gut. Wie bekomme ich den Code zum korrekten Ausführen/Kompilieren von der groovyConsole?

Antwort

5

Es gibt immer noch ein paar Knicke beim Ausarbeiten der Startup/Kill-Schalterroutine. Für Beta-2 dies tun, in einem eigenen Skript zuerst:

groovy.grape.Grape.initGrape() 

Ein weiteres Thema finden Sie in befasst sich mit den Freuden laufen eine unbegrenzte oberen Bereich zu verwenden. Jide-oss ab 2.3.0 hat seinen Code zu Java 6 Bytecodes kompiliert, so dass Sie entweder die Konsole in Java 6 ausführen müssen (was Sie ohnehin für Swing tun möchten) oder eine Obergrenze für die Bereiche, so

import com.jidesoft.swing.JideSplitButton 

@Grab(group='com.jidesoft', module='jide-oss', version='[2.2.1,2.3.0)') 
public class TestClassAnnotation { 
    public static String testMethod() { 
     return JideSplitButton.class.name 
    } 
} 

new TestClassAnnotation().testMethod() 
2

Ok. Scheint, als ob dies eine kurze Arbeits Demo (vom groovyConsole läuft)

groovy.grape.Grape.initGrape() 
@Grab(group='com.jidesoft', module='jide-oss', version='[2.2.1,2.3.0)') 
public class UsedToExposeAnnotationToComplier {} 
com.jidesoft.swing.JideSplitButton.class.name 

Wenn es

Ergebnis erzeugt ausführen: "com.jidesoft.swing.JideSplitButton"

Sehr cool !!

+0

Das ist für mich großartig gearbeitet. Die leere Klasse ist der Schlüssel. Ein paar Punkte ... 1/Ich brauchte die initGrape() Zeile nicht (mit groovy 1.7x oder 1.8x). 2/Wenn Sie hinter einem Proxy sind, stellen Sie sicher, dass Sie Ihre Proxy-Einstellungen -Dhttp.proxyHost = hinzufügen -Dhttp.proxyPort = ... Ich füge sie zu meinem startGroovy.sh | bat – khylo

-1

Verschiedenes Beispiel mit neuester RC-2 (Anmerkung: Schnappen annotiert createEmptyInts):

// create and use a primitive array 
import org.apache.commons.collections.primitives.ArrayIntList 

@Grab(group='commons-primitives', module='commons-primitives', version='1.0') 
def createEmptyInts() { new ArrayIntList() } 

def ints = createEmptyInts() 
ints.add(0, 42) 
assert ints.size() == 1 
assert ints.get(0) == 42 
+1

Beispiele gestohlen von http://groovy.codehaus.org/Grape. (genau kopiert) Auch beantwortet es die Frage nicht. –

+1

Ich stimme zu. Bitte verweisen Sie die Leute auf korrekte Antworten, wenn Sie sie an anderer Stelle im Internet finden. Geben Sie einen Link an. Bitte nehmen Sie keine Anerkennung für die Arbeit anderer Personen ohne Zuschreibung. – Anarchofascist

-1

Ein weiteres Beispiel (Anmerkung: Schnappen annotiert getHTML):

// find the PDF links in the Java 1.5.0 documentation 
@Grab(group='org.ccil.cowan.tagsoup', module='tagsoup', version='0.9.7') 
def getHtml() { 
    def parser = new XmlParser(new org.ccil.cowan.tagsoup.Parser()) 
    parser.parse("http://java.sun.com/j2se/1.5.0/download-pdf.html") 
} 
html.body.'**'[email protected](~/.*\.pdf/).each{ println it } 
+0

Beispiele gestohlen von http://groovy.codehaus.org/Grape. (genau kopiert) Auch beantwortet es die Frage nicht. –

-3

Ein weiteres Beispiel (Anmerkung: Grab Einfügen von Anmerkungen getFruit):

// Google Collections example 
import com.google.common.collect.HashBiMap 
@Grab(group='com.google.code.google-collections', module='google-collect', version='snapshot-20080530') 
def getFruit() { [grape:'purple', lemon:'yellow', orange:'orange'] as HashBiMap } 
assert fruit.inverse().yellow == 'lemon' 
+0

Beispiele gestohlen von http://groovy.codehaus.org/Grape. (genau kopiert) Auch beantwortet es die Frage nicht. –

5

ich habe es endlich arbeiten fo Groovy Shell (1.6.5, JVM: 1.6.0_13). Dies sollte besser dokumentiert werden.

Zuerst auf der Kommandozeile ...

Trauben installieren org.codehaus.groovy.modules.http Bauer http-Builder 0.5.0-RC2

Dann in groovysh .. .

groovy:000> import groovy.grape.Grape 
groovy:000> Grape.grab(group:'org.codehaus.groovy.modules.http-builder', module:'http-builder', version:'0.5.0-RC2') 
groovy:000> def http= new groovyx.net.http.HTTPBuilder('http://rovio') 
===> [email protected] 

Das @grab ist besser in einer Datei als die Shell verwendet.

0

Die Importanweisung muss nach der Greifer angezeigt werden.
Ps. Mindestens ein Import Anweisung muss existiert, nachdem die Greifer

@Grab(group='com.jidesoft', module='jide-oss', version='[2.2.1,)') 
import com.jidesoft.swing.JideSplitButton 
public class TestClassAnnotation { 
    public static String testMethod() { 
     return JideSplitButton.class.name 
    } 
} 
Verwandte Themen