Groovy无法解决java类
我从一个ant文件中执行groovy时遇到了问题。Groovy无法解决java类
在Eclipse中有一个启动,一切工作正常,但wehn我运行Ant文件我得到了以下的输出:
Main.groovy:71:无法解析类InitializeDatabase
[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" />
到
<groovyc srcdir="src" destdir="build">
<javac/>
</groovyc>
,它应该工作的罚款。由于它says here:
联合编制意味着Groovy的编纂将解析 Groovy的源文件,所有的人创造存根,调用Java 编译器来编译存根与Java源代码一起,然后 继续以正常的Groovy编译器方式进行编译。这允许 Java和Groovy文件不受约束混合。
...
工作的正确的做法是,当然,使用嵌套的标签,并根据需要所有 的属性,并进一步嵌套的标签。
谢谢,你帮了我很多! – 2012-04-03 15:52:28
@MichaelS很高兴我能帮忙:-)祝你好运! – 2012-04-03 15:53:05
这是最后的文件,它的效果很好。 感谢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>
你的java代码和groovy代码在同一个'src'文件夹中吗? – 2012-03-30 12:14:38
是的,相同的项目,相同的src文件夹,相同的包。这两个文件彼此相邻:-) – 2012-03-30 13:34:07
很酷,我想我找出了缺少的东西(见下文)希望它有帮助! :-) – 2012-04-02 09:11:08