Ссылка на класс домена Groovy из класса Java с помощью Eclipse?

Как я могу ссылаться на класс домена Groovy из класса Java с помощью Eclipse?

Я поместил свой предметный класс в пакет:

package com.me.myproject
public class Person {
    String name
    int age
}

Затем в своем классе Java я пытаюсь сослаться на com.me.myproject.Person. Это работает для grails run-app (командная строка), но не для Eclipse. Eclipse не может разрешить класс домена Groovy.

Я запускаю Eclipse 3.4.1 с последними плагинами Groovy и Grails Eclipse:

  • Функция Grails Eclipse 0.1.0 20081120_2330
  • GroovyFeature 1.5.7.20081120_2330

Я попытался установить папку вывода Eclipse по умолчанию в то же место, что и расположение вывода компилятора Groovy. Я также пробовал включать и отключать параметр «Отключить создание файлов классов компилятором Groovy». Я также пробовал не помещать свои классы в пакет. Ничего из этого не работает.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
4
0
3 636
7

Ответы 7

Мне тоже не удалось проделать эту работу в eclipse. Пока весной не будут созданы плагины groovy / grails eclipse для чего-то другого, кроме простого цветового кодирования, лучше всего использовать IDE, такую ​​как Intelij, которая имеет лучшую поддержку Groovy на данный момент.

Хотя я этого не пробовал, я считаю, что вам нужно добавить папку домена в качестве папки src в свой путь сборки Java.

Щелкните правой кнопкой мыши проект и выберите «Свойства». Щелкните Путь сборки Java, затем вкладку Источник. Щелкните папку добавления и убедитесь, что ваш проект / grails-app / домен находится в указанном пути.

Если это не сработает, то вы правы, я не уверен, в чем проблема.

К вашему сведению, Spring-Source, являясь таким спонсором Eclipse, я с нетерпением жду значительно улучшенного плагина Eclipse в ближайшем будущем. Но ты прав. Пока это раздражает.

Вы пробовали Плагин Groovy? Он может это сделать.

Мне также не удалось заставить его работать с той же выходной папкой для Groovy и Java, но, похоже, он работает, если вы используете разные выходные папки.

Вот что я сделал. В диалоговом окне свойств проекта:

  1. Под Свойства Groovy Project снимите флажок Отключить компилятор Groovy, генерирующий файлы классов(Примечание для разработчиков плагинов: используйте позитивные формулировки на метках флажков. «Сгенерировать файлы классов Groovy» будет намного легче понять, чем «отключить параметр отключения».)
  2. В Расположение вывода компилятора Groovy введите web-app/WEB-INF/groovy-classes
  3. В разделе Путь сборки Java -> Библиотеки добавьте папку классов Groovy.

Теперь у вас должна быть возможность использовать скомпилированные классы Groovy из Java.

Я думаю, что это скорее взлом, чем решение, но на данный момент он выполняет свою работу за меня.

Пожалуйста, обновите плагин groovy-eclipse до версии 2, так как эта проблема устранена. V2 плагина не создает заглушек и не имеет проблем с циклическими зависимостями между Java и Groovy. Плагин теперь поставляется с патчем функции, который исправляет компилятор JDT, чтобы он мог работать с Groovy-файлами.

Я не уверен, что ссылки на файлы или папки - хороший способ. Вам следует использовать модуляризацию. Таким образом, ваши доменные классы будут храниться в отдельном «проекте». Это можно сделать, создав плагины. Вы можете найти отличное объяснение и исходный код здесь.

Кажется, я немного опоздал на эту вечеринку, но столкнулся с той же проблемой. Мне удалось разрешить ссылку на класс домена Groovy из класса Java, преобразовав проект в проект Groovy. Инструкции следующие:

  1. Щелкните правой кнопкой мыши проект в Project Explorer.
  2. Выберите Преобразование в Groovy-проект из меню Настроить

Моя среда выглядит следующим образом:

  • Eclipse Kepler Service Release 1, код сборки: 20130919-0819
  • Плагин Groovy-Eclipse 2.9.0.xx-20130828-1400-e43-RELEASE
  • Grails IDE 3.4.0.201310051518-RELEASE (не думаю, что это было необходимо)

Наконец, я испортил нет любой опцией «Отключить создание файлов классов компилятором Groovy».

Другие вопросы по теме