Запуск сборок Gradle из Eclipse

Мы собираемся преобразовать нашу сборку Ant в Gradle.

Что касается интеграции с Eclipse, мы ищем (концептуально) эквивалентную функциональность для запуска сборок из IDE. Eclipse предоставляет удобное представление Ant для вызова целей Ant.

Существует подключаемый модуль Eclipse для запуска сборок Gradle (http://www.breskeby.com/downloads/gradle/eclipse/update/), но он, похоже, требует от пользователей прыгать через обручи для вызова различных целей (редактировать конфигурацию запуска, так далее.).

Как другие используют Gradle изнутри Eclipse?


person csl    schedule 22.06.2011    source источник
comment
Вот как я это делаю: github.com/djangofan/WebDriverTestingTemplate   -  person djangofan    schedule 17.01.2013


Ответы (12)


Короткий ответ: мы не вызываем скрипты gradle из Eclipse.

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

Мне немного любопытно, какие задачи вы хотите запускать из Eclipse. Почему бы не запускать задачи из командной строки?

person c_maker    schedule 22.06.2011
comment
Согласен, этот плагин, кажется, застопорился. Наша команда разработчиков привыкла вызывать различные цели Ant (очистка, сборка, развертывание, модульное тестирование и т. д.) из Eclipse Ant Viewer, и мы стремимся к концептуально плавному переходу на Gradle. Поскольку разработка ведется на компьютерах с Windows, о командной строке говорить не приходится... - person csl; 23.06.2011
comment
@csl: большая часть нашей команды также разрабатывает для Windows, и нет проблем с использованием gradle в командной строке. Я предлагаю вам поставить это «требование» на низком уровне. Мне бы не хотелось, чтобы по этой причине кто-то не перешел с ant на gradle. Все эти функции появятся в один прекрасный день, если у вас есть шанс, вы должны переключиться сейчас :) - person c_maker; 23.06.2011
comment
спасибо, попробую командную строку. Он также выглядит как Spring Tool Suite (forum.springsource .org/) поддерживает Gradle. - person csl; 23.06.2011
comment
Привет, я автор экспериментального плагина Gradle, указанного в ссылке, которую вы упомянули. Вы правы, я перестал тратить время на этот плагин eclipse, так как ребята из springsource sts начинают работать над плагином. sts 2.7.2 имеет довольно хорошую поддержку gradle. функционал моего плагина полностью доступен в плагине sts. но функциональность плагина sts gradle выходит далеко за рамки. На самом деле я объединяю усилия с ними, чтобы улучшить поддержку редактора для файлов gradle. Эта поддержка редактора основана на новой функции DSLD подключаемого модуля groovy-eclipse. - person Rene Groeschke; 30.06.2011
comment
@Rene: Приятно слышать, что этот проект продолжается! Но означает ли это, что мне придется использовать STS (что для меня не имеет особого смысла, так как я не использую Spring), или я также могу установить это как плагин/функцию Eclipse? - person Chris Lercher; 09.08.2011
comment
Привет, Крис, извини за задержку. к сожалению, вы правы и должны использовать платформу sts. вы можете обновить существующую установку eclipse, чтобы получить все, что вам нужно. Я попросил Эндрю (Айзенберга) предоставить автономную поддержку gradle, но на самом деле это не входит в их планы. Прости. - person Rene Groeschke; 04.09.2011
comment
Есть так много причин использовать gradle из Eclipse. Я думаю, что правильный вопрос будет заключаться в том, почему вы хотите перейти в отдельное командное окно для вызова Gradle. С моей текущей настройкой Ant я могу использовать горячую клавишу для автоматического запуска моей последней цели Ant, что очень удобно. - person IcedDante; 05.08.2014
comment
Переключение контекста разрушительно и, следовательно, плохо. Если вы уже находитесь в командной строке, это нормально. Лично я разрабатываю в Eclipse и ожидаю, что смогу строить прямо из Eclipse. Если это не поддерживается, мне лучше подходят инструменты, которые не вынуждают меня выходить из Eclipse для того, что я считаю базовыми операциями. - person John Czukkermann; 06.06.2018

Это старый пост, но команда SpringSource STS выпустила плагин: http://static.springsource.org/sts/docs/latest/reference/html/gradle/

Инструкции по установке можно найти здесь: http://static.springsource.org/sts/docs/latest/reference/html/gradle/installation.html

Мой опыт с ним до сих пор был довольно положительным. Для простых Java-проектов это работает довольно хорошо. У меня возникают некоторые проблемы с созданием правильных военных файлов через Eclipse при использовании плагина Gradle, но сам Gradle делает это чудесно. Я относительно новичок в Gradle и плагине, так что это может быть что-то, чего мне не хватает.

person Keith P    schedule 09.02.2012
comment
Установить плагин Spring Gradle Tooling в Eclipse Juno довольно просто. Просто добавьте обычный репозиторий программного обеспечения Juno к источникам установки, установите приложение Marketplace, перезапустите Eclipse, а затем используйте приложение Marketplace для установки Gradle и/или Groovy. - person djangofan; 07.04.2013
comment
Кстати, я использую IntelliJ в течение последнего года или около того, и интеграция с Gradle просто замечательна! - person Keith P; 12.11.2013
comment
Лично я думаю, что диалоги запуска для IntelliJ труднее понять с точки зрения Gradle. Мне сложно объяснить, но я думаю, что Eclipse в этом отношении намного проще. - person djangofan; 12.11.2013
comment
@djangofan было бы интересно узнать о вашем опыте работы с IntelliJ 13 - с гораздо улучшенной интеграцией Gradle. Я не могу вернуться в Eclipse :P - person Keith P; 06.12.2013
comment
я понимаю. в любом случае плагин Eclipse Gradle по-прежнему основан на Gradle 1.6. - person djangofan; 07.12.2013
comment
Основываясь на этом, мне нужно было запускать несколько команд gradle параллельно. Я смог добиться этого, создав средство запуска Eclipse типа Launch Group. Затем, когда вы нажмете «Добавить», вы можете выбрать одну из команд Gradle Build (если вы запускали их хотя бы один раз раньше из задач STS Gradle, показанных в этом ответе). Это можно использовать для одной команды Gradle, если это предпочтительно в раскрывающемся списке «Выполнить конфигурации». - person JCricket; 23.05.2015
comment
Установка STS Gradle теперь приводит к появлению всплывающего окна с сообщением о минимальном обслуживании и ссылкой о том, как перейти на Buildship. - person Noumenon; 17.01.2017

Временный обходной путь более приемлем для тех, у кого фобия командной строки.

В Eclipse используйте раскрывающееся меню Run/External Tools/External Tools Configurations...

Выберите «Программа» на левой панели навигатора, затем нажмите кнопку «Новая конфигурация запуска» на панели инструментов (первая кнопка на моей панели инструментов).

Выбрав вкладку Главное, заполните следующие поля:

  1. Имя: (над вкладками) на «Gradle» (или любое другое имя, которое вы хотите для пусковой установки).
  2. Расположение: используйте кнопку «Обзор файловой системы…», чтобы перейти к файлу «gradle.bat» или «gradlew.bat» для запуска.
  3. Рабочий каталог: используйте кнопку «Обзор рабочей области…», чтобы выбрать каталог с файлом «build.gradle» для нужного проекта.
  4. Аргументы: введите "--gui"

Добавьте к аргументам: переключатель «-b filename.gradle», если вы используете файл сборки Gradle, отличный от «build.gradle».

После этого ваши разработчики могут использовать кнопку Run / External Tools или панель инструментов для запуска Gradle Gui. Они могут сделать это и закрыть его после каждого использования или (чтобы избежать задержки запуска) свернуть его, когда он не используется.

person Blaine    schedule 19.10.2011
comment
Это также вполне приемлемое решение и общий способ запуска внешних инструментов из Eclipse без явной поддержки. Я до сих пор не понимаю, какая проблема у OP с запуском команд с отдельного терминала. В любом случае это быстрее. - person omnisis; 28.12.2011
comment
согласен с омнисисом: я вообще не вижу в этом временного обходного пути. Обратите внимание, что вместо запуска в режиме графического интерфейса вы можете просто вызвать gradle (или gradlew), передав сборку или запуск. Любая из этих конфигураций запуска может отображаться в раскрывающемся меню «Внешние инструменты» для быстрого доступа. - person Hawkeye Parker; 26.08.2014
comment
Согласитесь с приведенными выше комментариями ... весь смысл инструмента сборки состоит в том, чтобы сократить иногда очень сложные задачи, насколько это возможно, до одной или двух простых команд, таких как gradle build или gradle testCompile или что-то еще! Возможно, если ваша команда gradle очень длинная с множеством параметров и переключателей, И вы продолжаете ее повторять, хотя в случае с терминалом Linux и Windows DOS повторение команды тривиально, вам, вероятно, следует найти простой Способ CLI, позволяющий не вводить длинную команду (например, новую задачу или gradle.properties) - person mike rodent; 31.08.2016

Текущий ответ на этот вопрос должен быть таким: используйте собственный плагин Gradle для Eclipse Buildship:

http://projects.eclipse.org/projects/tools.buildship

Это поддерживается и разрабатывается командой Gradle и будет постоянно улучшаться в будущем. Он также может обрабатывать более старые версии (с функциональностью, зависящей от доступности версии Gradle).

Редактировать 2017-03-01: после выпуска Buildship 2.0 интеграция стала еще лучше, и я рекомендую ее (если вы уже не используете IntelliJ, то уже установили). По-прежнему отсутствуют некоторые функции, такие как возможность прямой отладки задач JavaExec и возможность запуска задач предварительной компиляции/предварительного импорта, но они находятся в их Список проблем Github.

person FkYkko    schedule 07.03.2016

Я знаю, что это старый вопрос, но я все еще не думаю, что Eclipse может запустить сборку Gradle для вас. Плагин Spring Gradle — отличное начало, если вы его используете, вы можете определить внешний конструктор инструментов для запуска gradle, когда захотите. Если у вас много проектов, и все они строятся с помощью gradle, вы даже можете сделать так, чтобы gradle добавил для вас возможность в ваши проекты eclipse. Хотя это можно исправить, вы можете добавить что-то вроде этого в свой файл сборки gradle:

apply plugin: 'eclipse'

eclipse {
    project {
        // Store a copy of the desired Gradle_Builder.launch file in a top-level 'master'
        //    directory.  Then this code searches for it, and by copying it, 
        //    adds the launch file to the specifc project that will run gradle
        String launchFileNameOrig = '.externalToolBuilders/Gradle_Builder.launch'
        String launchFileName = launchFileNameOrig
        File launchFile = file(launchFileName)
        boolean needToCopy = false
        while (!launchFile.exists()) {
            launchFileName = '../' + launchFileName
            launchFile = file(launchFileName)
            needToCopy = true
        }
        if (needToCopy) {
             copy {
                from (launchFile)
                into '.externalToolBuilders'
            }
        }

        buildCommand 'org.eclipse.ui.externaltools.ExternalToolBuilder', LaunchConfigHandle: '<project>/'+launchFileNameOrig
        file {
            // when they made the "buildCommand" it looks like they left off 'triggers', so parse the XML until
            // the right place is found, then insert it.
            withXml {
                def projectNode = it.asNode()
                projectNode.iterator().each { subNode ->
                    String subNodeText = '' + subNode
                    if (subNodeText.startsWith('buildSpec')) {
                        subNode.iterator().each { buildCmd ->
                            String nameNode = buildCmd?.name
                            if (nameNode.contains('ExternalToolBuilder')) {
                                buildCmd.appendNode('triggers', 'full')
                            }
                        }
                    }
                }
            }
        }
    }

Это содержимое файла, хранящегося в верхней части иерархии каталогов: ./.externalToolBuilders/Gradle_Builder.launch. Как определено здесь, это будет работать только после «чистки» [Gradle дороже по времени, чем собственный Java Builder, поэтому продолжайте использовать его для автоматического построения]. Примечание. Содержимое файла ниже также предполагает, что вы используете «git» и оболочку gradle. Вы видите это в значении ATTR_LOCATION. Отрегулируйте по мере необходимости. Одна приятная вещь в этом подходе заключается в том, что у вас может быть оболочка gradle любой версии gradle, которую вы хотите, и тогда eclipse будет использовать эту версию при запуске!

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType">
<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${workspace}"/>
<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${git_dir}/../gradlew"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="assemble"/>
<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="${project_loc}"/>
</launchConfiguration>
person JoeG    schedule 30.08.2012

Вы можете создать собственный модуль запуска из eclipse, который будет вызывать вашу сборку Gradle.

person bhagyas    schedule 23.06.2011

Как всегда, вам лучше с IDEA. Поддержка существует с 2009 г. http://blogs.jetbrains.com/idea/2009/08/gradle-support/

и даже более полная поддержка теперь доступна через EAP (бесплатно!) -idea/" rel="nofollow">http://blogs.jetbrains.com/idea/2011/09/keen-to-try-gradle-integration-in-intellij-idea/

person opticyclic    schedule 17.10.2011
comment
Вы правы. Я хочу, чтобы моя команда не была отсталой и использовала IDEA. Но они все равно придерживаются Eclipse. - person Maladec VampaYa; 17.07.2015

Вы можете использовать плагин Gradle Eclipse, например gradle eclipse, для создания проекта Eclipse из проекта gradle. Он добавляет множество целей к сгенерированным проектам Eclipse и обладает широкими возможностями настройки.

person Bozhidar Batsov    schedule 22.06.2011
comment
Спасибо, но вопрос был о вызове Gradle из Eclipse, а не о создании проектов Eclipse. - person csl; 22.06.2011

Вы можете использовать Buildship, как указано FkYkko. Однако следует иметь в виду, что задачи Ant считаются первоклассными гражданами в gradle. Это означает, что вы можете просто импортировать скрипт сборки ant, ссылаясь на его задачи так же, как вы ссылаетесь на задачи gradle. Такой подход позволяет вам просто использовать ваши ant-задачи из коробки с gradle, не преобразовывая их в gradle-задачи.

Например, предположим, что у вас есть скрипт сборки с именем build.xml в том же каталоге, что и ваш build.gradle, и задача в build.xml с именем buildProj. Вы можете импортировать build.xml и вызывать build proj из build.gradle следующим образом:

task antDeps {
    ant.importBuild 'build.xml'
}

task buildAll (dependsOn:['buildProj']) {
    // the rest of your gradle task here.
}

См. это или это для получения дополнительной информации.

person DivDiff    schedule 16.06.2016

Существует также Enide Gradle http://www.nodeclipse.org/projects/gradle
который можно использовать с Gradle IDE от Pivotal или без него.
В проектах Gradle, Maven или CDT(C++).

запустить

Как отдельный плагин, он может иметь различную конфигурацию для версии Gradle и версии Java.

Этот пакет Gradle IDE находится в Enide.

person Paul Verest    schedule 24.04.2014

Я столкнулся с этим вопросом после установки более нового плагина Buildship, который постепенно отказывается от Spring Tool Suite, упомянутого здесь другими.

Инструкции по использованию представления задач в Buildship следующие:

Использование представления задач Gradle

После успешного импорта проекта Gradle проект отображается в представлении Gradle Tasks. «введите Щелкнув правой кнопкой мыши по определенной задаче Gradle в представлении «Задачи Gradle», вы можете запустить выбранную задачу Gradle.

введите описание изображения здесь

По умолчанию результат отображается в представлении Gradle Executions. Он также отображается в представлении консоли, подобно выводу, который вы получите, если запустите задачу через командную строку.

Источник

person Philip Kirkbride    schedule 16.10.2016

Еще один новый проект 2016 года — EGradle

https://github.com/de-jcup/egradle

Также не требуется, чтобы проект имел особый характер, достаточно будет просто существующего build.gradle.

Руководство пользователя находится во встроенной справке (F1) или в предварительном просмотре по адресу https://rawgit.com/de-jcup/egradle/master/egradle-plugin-main/html/.user_guide.html

person Paul Verest    schedule 12.12.2016