Eclipse: объединенная поддержка редактирования Groovy и Gradle - PullRequest
0 голосов
/ 03 октября 2018

Я знаю, что в IntelliJ IDEA очень хорошая поддержка Groovy / Gradle, но я пытаюсь выяснить, как далеко может зайти Eclipse в настоящее время.Это мои текущие настройки:

  • Плагин сборки: включен по умолчанию и добавляет базовые механизмы Gradle в Elipse, почти не поддерживает редактор (завершение кода, документация, форматирование и т. Д.).
  • Плагин EGradle Editor: Понимает Gradle DSL и предоставляет дополнения кода / документацию для Gradle API, не понимает сам Groovy.
  • Плагин Groovy Development Tools от Pivotal: Хорошая поддержка Groovy с дополнениями кода, форматирование Groovy-кодаи т.д.

Чего сейчас не хватает, так это комбинации двух последних очков.Редакторы каждого плагина понимают либо Gradle, либо Groovy, но не оба.Я видел, что в плагине Groovy есть некоторая поддержка дескрипторов DSL, но я нигде в Интернете не могу найти дескриптор DSL для Gradle.Я обнаружил, что была некоторая поддержка такого дескриптора DSL в ныне устаревшем плагине интеграции Gradle для STS (Spring Tool Suite от Pivotal), который снова был удален позже (ключевое слово: org.springsource.ide.eclipse.gradle.dsld).

Итак, общий вопрос примерно такой: существует ли Gradle DSLD для плагина Groovy Development Tools?

1 Ответ

0 голосов
/ 09 ноября 2018

В Eclipse можно добавить DLSD для Gradle.На момент написания этой статьи в Groovy Development Tools для Eclipse .

не было ничего встроенного. Вам нужно будет открывать скрипты сборки Gradle в редакторе Groovy, а не вредактор Gradle по умолчанию.

Первое препятствие делает типы Gradle доступными для DSLD.Это можно сделать, добавив зависимость "gradleApi ()" в ваш блок зависимостей Gradle.Затем вы можете попробовать это как файл Groovy DSLD в вашем проекте (в настоящее время он немного скучен):

def isBuildScript = fileExtension('gradle') & (~fileName('settings.gradle'))

contribute(isBuildScript & isThisType()) {
  delegatesTo 'org.gradle.api.Project'

  method name: 'apply', type: void, namedParams: [plugin: String]
}

contribute(isBuildScript & enclosingCallName('configurations') & inClosure() & currentType('org.gradle.api.Project')) {
  setDelegateType('org.gradle.api.artifacts.ConfigurationContainer')
}

contribute(isBuildScript & enclosingCallName('dependencies') & inClosure() & currentType('org.gradle.api.Project')) {
  setDelegateType('org.gradle.api.artifacts.dsl.DependencyHandler')
}

contribute(isBuildScript & enclosingCallName('repositories') & inClosure() & currentType('org.gradle.api.Project')) {
  setDelegateType('org.gradle.api.artifacts.dsl.RepositoryHandler')
}

contribute(fileName('settings.gradle') & isThisType()) {
  setDelegateType('org.gradle.api.initialization.Settings')
}

Более подробно это обсуждается здесь: https://github.com/gradle/gradle/issues/6089

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