Запуск сборок Gradle из Eclipse - PullRequest
46 голосов
/ 22 июня 2011

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

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

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

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

Ответы [ 12 ]

26 голосов
/ 09 февраля 2012

Это довольно старый пост, но команда 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 и плагине, хотя, так что это может быть что-то, что мне не хватает.

23 голосов
/ 20 октября 2011

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

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

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

С выбранной вкладкой Main заполните следующие поля:

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

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

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

15 голосов
/ 23 июня 2011

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

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

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

10 голосов
/ 07 марта 2016

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

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

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

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

8 голосов
/ 30 августа 2012

Я знаю, что это старый вопрос, но я все еще не думаю, что 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>
5 голосов
/ 23 июня 2011

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

2 голосов
/ 16 июня 2016

Вы можете использовать Buildship , как указано FkYkko. Однако следует помнить, что задачи Ant считаются первоклассными гражданами. Это означает, что вы можете просто импортировать скрипт сборки ant, ссылаясь на его задачи так же, как вы ссылаетесь на задачи gradle. Поступая таким образом, вы можете просто использовать задачи муравья из коробки с 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.
}

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

2 голосов
/ 18 октября 2011

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

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

2 голосов
/ 22 июня 2011

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

1 голос
/ 12 декабря 2016

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

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

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

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

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