2012-03-30 11 views
3

antファイルからgroovyを実行すると問題が発生しました。GroovyがJavaクラスを解決できない

ランチャーとEclipseで

、すべてが正常に動作しますが、私はアリファイルを実行wehn私は次の出力ました:

Main.groovy:71:クラスが
[groovyc] @ラインをInitializeDatabase解決できません71、カラム40 groovyc] java.lang.Objectの javaClassInstance =新しいInitializeDatabase()
[groovyc]

[groovyc] 1エラー

InitializeDatabaseは、私は問題が蟻のファイルにあります推測

public class InitializeDatabase { 

    public void test() { 
     System.out.println("Hello Groovy"); 
    } 
} 

..同じパッケージ内のJavaクラスである:

<project name="tp" basedir="." default="dbsetup"> 
    <target name="dbsetup"> 
     <taskdef name="groovyc" classname="org.codehaus.groovy.ant.Groovyc"> 
      <classpath> 
       <fileset dir="../files/lib/default" includes="*.jar" /> 
      </classpath> 
     </taskdef> 

     <delete dir="bin" /> 
     <mkdir dir="bin" /> 
     <groovyc srcdir="src" destdir="bin" /> 

     <java classname="groovy.ui.GroovyMain" dir="../.." fork="true" failonerror="true"> 
      <classpath> 
       <fileset dir="../files/lib/default" includes="*.jar"/> 
       <pathelement location="bin"/> 
      </classpath> 
      <arg line="build/scripts/src/build/Main.groovy" /> 
     </java> 
    </target> 

</project> 

誰かが私を助けてくださいことはできますか?

+0

javaコードとgroovyコードは同じ 'src'フォルダにありますか? –

+0

はい、同じプロジェクト、同じsrcフォルダ、同じパッケージ。 2つのファイルはお互いに隣り合っています:-) –

+1

クール、私は欠けていたものが分かったと思います(下記参照)。 :-) –

答えて

2

groovycの中にjavacタスクを含める必要があります。変更:

<groovyc srcdir="src" destdir="bin" /> 

<groovyc srcdir="src" destdir="build"> 
     <javac/> 
    </groovyc> 

し、それが正常に動作する必要があります。

共同編集Groovyのコンパイルは引き続き、 Groovyのソースファイルを解析し、それらのすべてのスタブを作成し、Javaソースと一緒にスタブをコンパイルするためにJava コンパイラを起動し、その後 することを意味します:それsays hereは、AS通常のGroovyコンパイラの方法でコンパイルします。これにより、制約なしでJavaとGroovyのファイルを混在させることが可能になります( )。

...

作業の正しい方法は、必要に応じて、ネストされたタグとすべての の属性と、さらにネストされたタグを使用するように、もちろん、です。

+0

ありがとう、あなたは私をたくさん助けました! –

+0

@MichaelS喜んで私は助けることができます:-)それと幸運! –

0

ここは素晴らしい作品です。 tim_yatesさんに感謝します!

<target name="dbsetup"> 

     <taskdef name="groovyc" classname="org.codehaus.groovy.ant.Groovyc"> 
      <classpath> 
       <fileset dir="../files/lib/default" includes="*.jar" /> 
      </classpath> 
     </taskdef> 

     <delete dir="bin" /> 
     <mkdir dir="bin" /> 
     <groovyc srcdir="src" destdir="bin"> 
      <javac source="1.6" target="1.6" debug="on" /> 
     </groovyc> 

     <java classname="groovy.ui.GroovyMain" dir="../.." fork="true" failonerror="true"> 
      <classpath> 
       <fileset dir="../files/lib/default" includes="*.jar"/> 
       <pathelement location="bin"/> 
      </classpath> 
      <arg line="build/scripts/src/build/access/AccessDbSetup.groovy" /> 
     </java> 
    </target> 
関連する問題