8

Java と groovy を組み合わせた Web アプリケーション (フレームワークなし) を開発したいと考えています。プラグインで IDE Netbeans を使用しています。

新しい Java SE プロジェクトを開始して Groovy クラスを追加すると、問題なく動作しますが、新しい Java EE プロジェクトを作成して Groovy クラスを追加すると、コンパイルできず、次のエラーが表示されます。

/home/webcodei/NetBeansProjects/testeGroovyWeb/src/java/pacote/Hello.java:23: cannot find symbol 

symbol  : class Hroovy
location: class pacote.Hello
            Hroovy h = new Hroovy();
/home/webcodei/NetBeansProjects/testeGroovyWeb/src/java/pacote/Hello.java:23: cannot find symbol
symbol  : class Hroovy
location: class pacote.Hello
            Hroovy h = new Hroovy();
2 errors
/home/webcodei/NetBeansProjects/testeGroovyWeb/nbproject/build-impl.xml:383: The following error         occurred while executing this line:
/home/webcodei/NetBeansProjects/testeGroovyWeb/nbproject/build-impl.xml:211: Compile failed; see     the compiler error output for details.
FALHA NA CONSTRUÇÃO (tempo total: 0 segundos)

netbeans で Java EE + Groovy を有効にする方法を知っている人はいますか?

ps:Grailsの存在は知っています

ps2: Groovy jar はクラスパスにあります。

すべてをありがとう!

4

2 に答える 2

5

@デイブ・スミス、

これはまさに私がしたことでした。1 つの javase プロジェクトと 1 つの webapp を作成し、それらの比較を開始しました。数分後、唯一の違いは groovy-build.xml であることに気付きました。

そこで、groovy-build.xml をディレクトリにコピーし、build.xml に次の行を挿入しました。

<import file="nbproject/groovy-build.xml"/>

レギュラー直前

<import file="nbproject/build-impl.xml"/>

そして、groovy ファイルを呼び出して -init-macrodef-javac を上書きします。

<target depends="-groovy-init-macrodef-javac" name="-pre-compile">

</target> 

名前空間を groovy-build.xml から私の例に変更する必要もありました。

<macrodef name="javac" uri="http://www.netbeans.org/ns/web-project/2"> 

そして、数行後に j2ee クラスパス (${j2ee.platform.classpath}) を属性に挿入します。

<attribute default="${javac.classpath}:${j2ee.platform.classpath}" name="classpath"/> 

その後、プロジェクトは成功しました!=D

すべてをありがとう!

于 2009-01-08T11:07:05.990 に答える
5

NetBeans 6.5 Java Webapp プロジェクト マネージャーには、Java アプリおよび Java クラス ライブラリ プロジェクトに存在する「Groovy を有効にする」サポートがないようです。

これを回避する方法は 2 つあります。

まず、Groovy コードとテストを別のプロジェクトに Java クラス ライブラリとして配置できます。次に、Java Web アプリケーションを Groovy プロジェクトに依存させます。NetBeans は依存プロジェクトを自動的に構築するため、それらが別々のプロジェクトにあることにほとんど気付かないでしょう。

次に、「Groovy を有効にする」は魔法ではありません。/nbprojects に groovy-build.xml を記述し、build-impl.xml を変更してインポートするだけです。groovy-build.xml はデフォルトの「javac」マクロをオーバーライドして、代わりに「groovyc」を呼び出します。Ant に慣れている場合は、Java アプリケーション プロジェクトから groovy-build.xml をコピーして Java Web プロジェクトにコピーし、それを build.xml からインポートすることができます (build-impl.xml がインポートされる前に)。 )。groovy-build.xml は、webapp とクラス ライブラリの間のプロパティの一部が少し異なるため、いくつかの調整が必要になる可能性があります。

于 2009-01-06T22:45:40.497 に答える