在我的Grails
应用中,我明确指出在Groovy
之前编译Java
,添加此内容,
sourceSets {
main {
groovy {
// override the default locations, rather than adding additional ones
srcDirs = ['src/main/groovy', 'src/main/java']
}
java {
srcDirs = [] // don't compile Java code twice
}
}
}
到build.gradle
。
添加此代码段后,应用程序开始抱怨Main类
...
...
:findMainClass FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':findMainClass'.
> Illegal null value provided in this collection: [null]
当我运行gradle clean build
时。
我尝试提供如下的主要类,
springBoot {
mainClass = "foo.bar.Application" // The one in the grails-app/init
}
但尚未发现另一个错误。
...
...
:classes
:findMainClass
:bootRunError: Could not find or load main class foo.bar.Application
非常感谢任何帮助。
版本:
答案 0 :(得分:0)
Java本身不能使用groovy类。在实现互操作性之前,必须将它们编译为JVM字节码。如果您想在java中使用可重用的groovy代码,最简单的方法是将groovy库独立打包到JAR文件(jvm字节代码)中,并将其用作JAR依赖项。这样做时你还需要groovy sdk jar,以便java"理解"时髦的签名。