web-dev-qa-db-fra.com

Lancement de versions Gradle depuis Eclipse

Nous envisageons de convertir notre build Ant en Gradle.

En ce qui concerne l'intégration avec Eclipse, nous recherchons des fonctionnalités (conceptuellement) équivalentes pour lancer des builds à partir de l'IDE. Eclipse fournit une vue Nice Ant pour invoquer des cibles Ant.

Il existe un plugin Eclipse pour lancer les builds Gradle (http://www.breskeby.com/downloads/gradle/Eclipse/update/), mais cela semble obliger les utilisateurs à passer par des cerceaux pour invoquer différentes cibles (éditer la configuration de lancement, etc.).

Comment les autres utilisent-ils Gradle depuis Eclipse?

46
csl

La réponse courte est que nous n'invoquons pas de scripts gradle depuis Eclipse.

Je crois que ce site indique où en est ce travail en ce moment et il ne semble pas y en avoir beaucoup en ce moment.

Je suis un peu curieux de savoir quel type de tâches vous souhaitez exécuter depuis Eclipse. Pourquoi ne pas exécuter des tâches à partir de la ligne de commande?

15
c_maker

C'est une sorte de vieux post, mais l'équipe SpringSource STS a publié un plugin: http://static.springsource.org/sts/docs/latest/reference/html/gradle/

Les instructions d'installation peuvent être trouvées ici: http://static.springsource.org/sts/docs/latest/reference/html/gradle/installation.html

Mon expérience a été assez positive jusqu'à présent. Pour les projets directs Java projette, cela fonctionne très bien. J'ai des problèmes pour générer des fichiers de guerre corrects via Eclipse, tout en utilisant le plugin Gradle, mais gradle lui-même le fait à merveille. Je suis relativement nouveau pour Gradle et le plugin, donc ça pourrait être quelque chose qui me manque.

26
Keith P

Contournement intérimaire plus acceptable pour ceux qui ont une phobie en ligne de commande.

Depuis Eclipse, utilisez le menu déroulant Exécuter/Outils externes/Configurations d'outils externes ...

Sélectionnez "Programme" dans le panneau de navigation de gauche puis cliquez sur le bouton "Nouvelle configuration de lancement" dans la barre d'outils (premier bouton dans ma barre d'outils).

Avec l'onglet Principal sélectionné, remplissez les champs suivants:

  1. Nom: (au-dessus des onglets) à "Gradle" (ou quel que soit le nom que vous souhaitez pour le lanceur).
  2. Emplacement: utilisez le bouton "Parcourir le système de fichiers ..." pour accéder à votre "gradle.bat" ou "gradlew.bat" à exécuter.
  3. Répertoire de travail: utilisez le bouton "Parcourir l'espace de travail ..." pour sélectionner le répertoire contenant le fichier "build.gradle" pour le projet souhaité.
  4. Arguments: entrez "--gui"

Ajouter aux arguments: le commutateur "-b filename.gradle" si vous utilisez un fichier de construction Gradle autre que "build.gradle".

Après cela, vos développeurs peuvent utiliser le bouton Exécuter/Outils externes ou le bouton de la barre d'outils pour lancer Gradle Gui. Ils peuvent le faire et le fermer après chaque utilisation, ou (pour éviter le décalage de démarrage), le minimiser lorsqu'il n'est pas utilisé.

23
Blaine

La réponse actuelle à cette question devrait être, utilisez le propre plugin Eclipse de Gradle Buildship :

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

Ceci est soutenu et développé par l'équipe Gradle et sera continuellement amélioré à l'avenir. Il peut également gérer des versions plus anciennes (avec des fonctionnalités basées sur la disponibilité de la version Gradle).

Edit 2017-03-01: Après la sortie de Buildship 2.0, l'intégration est encore meilleure et je le recommande (sauf si vous utilisez déjà IntelliJ, puis votre déjà défini). Il manque encore certaines fonctionnalités comme la possibilité de déboguer directement les tâches JavaExec et la possibilité d'exécuter des tâches de précompilation/préimportation, mais celles-ci sont dans leur liste des problèmes Github .

10
FkYkko

Je sais que c'est une vieille question, mais je ne pense toujours pas qu'il soit possible qu'Eclipse exécute un build gradle pour vous. Le plugin Spring Gradle est un bon début, si vous l'utilisez, vous pouvez définir un générateur d'outils externe pour exécuter gradle quand vous le souhaitez. Si vous avez beaucoup de projets et que tous sont construits avec gradle, vous pouvez même demander à gradle d'ajouter la capacité à vos projets Eclipse pour vous. Bien que cela puisse être nettoyé, vous pouvez ajouter quelque chose comme ça à votre fichier de construction 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')
                            }
                        }
                    }
                }
            }
        }
    }

Il s'agit du contenu du fichier stocké en haut de la hiérarchie des répertoires sous: ./.externalToolBuilders/Gradle_Builder.launch. Comme défini ici, cela ne fonctionnera qu'après un "nettoyage" [Gradle est plus cher en temps que le générateur Java Builder, continuez donc à l'utiliser pour la construction automatique]. Remarque: le le contenu du fichier ci-dessous suppose également que vous utilisez "git" et le wrapper de gradle. Vous le voyez sur la valeur ATTR_LOCATION. Ajustez selon les besoins. voulez, puis Eclipse utilisera cette version lors de son exécution!

<?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>
8
JoeG

Vous pouvez créer un lanceur personnalisé à partir d'Eclipse qui invoquerait votre build Gradle.

5
bhagyas

Vous pouvez utiliser Buildship comme indiqué par FkYkko. Cependant, une chose à garder à l'esprit est que les tâches Ant sont considérées comme des citoyens de première classe. Cela signifie que vous pouvez simplement importer un script de génération de fourmi, en référençant ses tâches de la même manière que vous référencez les tâches Gradle. Faire les choses de cette façon vous permet d'utiliser simplement vos tâches de fourmi avec Gradle, sans les convertir en tâches Gradle.

Par exemple, supposons que vous ayez un script de génération nommé build.xml dans le même répertoire que votre build.gradle et une tâche dans build.xml nommée buildProj. Vous pouvez importer build.xml et appeler build proj à partir de build.gradle comme ceci:

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

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

Voir this , ou this pour plus d'informations.

2
DivDiff

Vous pouvez utiliser le plugin Gradle Eclipse comme gradle Eclipse pour générer un projet Eclipse à partir du projet gradle. Il ajoute de nombreuses cibles aux projets Eclipse générés et est hautement personnalisable.

2
Bozhidar Batsov

Comme toujours, vous êtes mieux avec IDEA. Le support existe depuis 2009 http://blogs.jetbrains.com/idea/2009/08/gradle-support/

et un support encore plus complet est disponible maintenant via le PAE (gratuit à utiliser!) http://blogs.jetbrains.com/idea/2011/09/keen-to-try-gradle-integration-in-intellij- idée /

2
opticyclic

Je suis tombé sur cette question après avoir installé le nouveau plugin Buildship qui supprime progressivement Spring Tool Suite mentionné par d'autres ici.

Les instructions d'utilisation de la vue des tâches avec Buildship sont les suivantes:

Utilisation de la vue Tâches Gradle

Après avoir importé avec succès un projet Gradle, le projet est affiché dans la vue Tâches Gradle. enter image description here En cliquant avec le bouton droit sur une certaine tâche Gradle dans la vue Tâches Gradle, vous pouvez exécuter la tâche Gradle sélectionnée.

enter image description here

Par défaut, le résultat est affiché dans la vue Exécutions Gradle. Il est également affiché dans la vue de la console, similaire à la sortie que vous obtiendriez si vous exécutez la tâche via la ligne de commande.

Source

1
Philip Kirkbride

Il y a aussi Enide Gradle http://www.nodeclipse.org/projects/gradle
qui peut être utilisé avec ou sans Gradle IDE par Pivotal.
Dans les projets Gradle, Maven ou CDT (C++).

run

En tant que plugin séparé, il peut avoir une configuration différente pour la version Gradle et Java version à utiliser

Ceci, Gradle IDE Pack sont dans Enide

1
Paul Verest

Un autre nouveau projet en 2016 est EGradle

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

N'exige pas non plus que le projet soit de nature particulière, il suffit d'exister build.gradle serait suffisant.

Le guide de l'utilisateur se trouve dans l'aide intégrée (F1) ou un aperçu sur https://rawgit.com/de-jcup/egradle/master/egradle-plugin-main/html/user_guide.html

1
Paul Verest