проблемы при попытке скомпилировать класс Groovy внутри класса Java - PullRequest
0 голосов
/ 02 июля 2019

Нам нужно перенести приложение с Grails 2.x на Grails 3.x

Мы мало что знаем об этом приложении, но в прошлом в v2 оно использовало классы Groovy внутри классов Java.

После обновления до v3 это больше не работает. Наличие Groovy-кода внутри Java-класса вернет это

...: 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() { ... }
}

1 Ответ

1 голос
/ 03 июля 2019

они находятся под src / main / java и src / main / groovy

Простая вещь, которую делают большинство приложений Grails, - это поместить весь исходный код Java и Groovy в src/main/groovy/. Это позволяет объединенному компилятору Groovy скомпилировать все это как единое целое, чтобы вы могли иметь двунаправленные зависимости между классами Groovy и Java. Можно настроить поддержку отдельных каталогов, но это связано с некоторой сложностью, которая на самом деле ничего вам не дает, поэтому принято использовать src/main/groovy /.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...