2012-03-30 2 views
3

ant 파일에서 groovy를 실행하여 문제가 발생했습니다.Groovy가 Java 클래스를 확인할 수 없습니다.

실행기와 이클립스에서

, 모든 것이 잘 작동하지만 난 개미 파일을 실행 wehn 나는 다음과 같은 출력이있어 :

Main.groovy : 71 : 클래스
[groovyc] @ 선을 InitializeDatabase 해결할 수없는 71 칼럼 40 groovyc] java.lang.Object 상위 javaClassInstance = 새로운 InitializeDatabase()
[groovyc]

[groovyc] 1 에러

<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> 

누군가가 제발 도와 드릴까요 :

InitializeDatabase는

public class InitializeDatabase { 

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

나는 문제가 개미 파일에 있습니다 같아요 .. 같은 패키지에있는 자바 클래스이다?

+0

자바 코드와 그루비 코드가 같은'src' 폴더에 있습니까? –

+0

예, 동일한 프로젝트, 동일한 src 폴더, 동일한 패키지. 두 파일은 서로 옆에 있습니다 :-) –

+1

멋진데, 내가 누락 된 것이 무엇인지 알아 냈다고 생각합니다 (아래 참조) 도움이되기를 바랍니다! :-) –

답변

2

groovyc 안에 javac 작업을 포함해야합니다.

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

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

에 그리고 그것을 잘 작동합니다 : 변경합니다. says here 그것으로 :

공동 편집은 그루비 컴파일 계속 다음, 그루비 소스 파일을 구문 분석 모두에 대한 스텁을 생성, 자바 소스와 함께 스텁을 컴파일하려면 Java 컴파일러를 호출하고, 것을 의미합니다 컴파일은 일반적인 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> 
관련 문제