尝试在 java class 中编译 groovy class 时出现问题

problems when trying to compile groovy class inside a java class

我们目前需要将应用程序从 Grails 2.x 迁移到 Grails 3.x

我们对这个应用程序了解不多,但在过去,在 v2 中,它在 Java classes 中使用了 Groovy classes。

升级到 v3 后,这似乎不再起作用了。在 Java class 中包含 Groovy 代码将 return this

...: error: cannot find symbol
      line of code with the error
                                                            ^
  symbol:   variable MyGroovyClass
  location: class MyJavaClass


MyJavaClass

public class MyJavaClass {
  public void x() { MyGroovyClass.test(); }
}

MyGroovyClass

class MyGroovyClass {
  static void test() { ... }
}

they are placed under src/main/java and src/main/groovy

最简单的事情,也是大多数 Grails 应用程序所做的事情,就是将所有 Java 和 Groovy 源代码放在 src/main/groovy/ 下。这允许 Groovy 联合编译器将所有这些作为一个单元编译在一起,因此您可以在 Groovy 和 Java 类 之间具有双向依赖关系。可以配置对单独目录的支持,但它涉及一些复杂性,实际上并不能给你带来任何好处,这就是为什么约定使用 src/main/groovy/.