Groovy无法解析java类
通过从ant文件执行groovy,我遇到了一个问题 在带有启动器的Eclipse中,一切正常,但我运行ant文件时得到了以下输出: Main.groovy:71:无法解析类InitializeDatabaseGroovy无法解析java类,java,ant,groovy,Java,Ant,Groovy,通过从ant文件执行groovy,我遇到了一个问题 在带有启动器的Eclipse中,一切正常,但我运行ant文件时得到了以下输出: Main.groovy:71:无法解析类InitializeDatabase [groovyc]@第71行第40列。[groovyc]java.lang.Object javaClassInstance=新的InitializeDatabase() [groovyc] [groovyc]1错误 InitializeDatabase是同一个包中的java类 publi
[groovyc]@第71行第40列。[groovyc]java.lang.Object javaClassInstance=新的InitializeDatabase()
[groovyc] [groovyc]1错误 InitializeDatabase是同一个包中的java类
public class InitializeDatabase {
public void test() {
System.out.println("Hello Groovy");
}
}
我想问题出在ant文件上:
<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>
有人能帮我吗?您需要在
groovyc
任务中包含javac
任务。更改:
<groovyc srcdir="src" destdir="bin" />
到
它应该很好用。正如它所说:
联合编译意味着Groovy编译将解析
Groovy源文件,为所有源文件创建存根,调用Java
编译器编译存根和Java源代码,然后
以常规Groovy编译器的方式继续编译。这允许
无约束地混合Java和Groovy文件
当然,正确的工作方式是使用嵌套标记和所有
属性和进一步的嵌套标记(根据需要)
这里是最后一个文件,它非常有效。 感谢蒂姆·耶茨
<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>
您的java代码和groovy代码是否在相同的src
文件夹中?是的,相同的项目,相同的src文件夹,相同的包。这两个文件彼此相邻:-)很酷,我想我找到了丢失的内容(见下文)希望能有所帮助:-)对不起,到现在为止没有时间测试它。。但是看起来不错。。我会尽快尝试的!谢谢你,你帮了我很多忙@迈克尔很高兴我能帮忙:-)祝你好运!
<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>