12

Groovy 1.6-beta-2 で新しいGroovy Grape機能を使用しようとしましたが、エラー メッセージが表示されます。

unable to resolve class com.jidesoft.swing.JideSplitButton

ストック例を実行するときの Groovy コンソール (/opt/groovy/groovy-1.6-beta-2/bin/groovyConsole) から。

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

ライブラリが確実にインポートされるように、グレープ コマンド ライン ツールを実行してみました。このような;

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

これにより、ライブラリが正常にインストールされます。コードを groovyConsole から正しく実行/コンパイルするにはどうすればよいですか?

4

7 に答える 7

5

スタートアップ/キル スイッチ ルーチンの作業には、まだいくつかのねじれがあります。Beta-2 では、最初に独自のスクリプトでこれを行います。

groovy.grape.Grape.initGrape()

あなたが遭遇する別の問題は、無制限の上限範囲を使用する喜びに対処します. 2.3.0 以降の Jide-oss はコードを Java 6 バイトコードにコンパイルしているため、Java 6 でコンソールを実行する (これは Swing でやりたいことです) か、上限を設定する必要があります。範囲、そのように

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()
于 2008-10-11T18:24:28.847 に答える
5

Groovy Shell (1.6.5、JVM: 1.6.0_13) でようやく動作するようになりました。これは、より適切に文書化する必要があります。

まずコマンドラインで...

グレープ インストール org.codehaus.groovy.modules.http-builder http-builder 0.5.0-RC2

それから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')
===> groovyx.net.http.HTTPBuilder@91520

@grab は、シェルよりもファイルで使用する方が適しています。

于 2009-10-27T06:06:39.547 に答える
2

Ok。この短い動作デモのようです (groovyConsole から実行)

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

実行すると生成されます

結果: 「com.jidesoft.swing.JideSplitButton」

とてもかっこいい!!

于 2008-10-11T18:50:34.927 に答える
-1

最新の RC-2 を使用した別の例 (注: Grab は 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
于 2009-01-23T14:58:47.617 に答える
-3

別の例(注:Grab注釈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'
于 2009-01-31T14:59:46.740 に答える