Lanzamiento de compilaciones de Gradle desde Eclipse


Estamos buscando convertir nuestra compilación Ant a Gradle.

En lo que respecta a la integración con Eclipse, estamos buscando una funcionalidad (conceptualmente) equivalente para lanzar compilaciones desde el IDE. Eclipse proporciona una buena vista de hormigas para invocar objetivos de hormigas.

Hay un plugin Eclipse para lanzar compilaciones de Gradle (http://www.breskeby.com/downloads/gradle/eclipse/update/), pero esto parece requerir que los usuarios salten a través de aros para invocar diferentes objetivos (editar el lanzamiento configuración, etc.).

¿Cómo están usando Gradle otros desde dentro de Eclipse?

Author: csl, 2011-06-22

12 answers

La respuesta corta es que no invocamos scripts de gradle desde Eclipse.

Creo que este sitio describe dónde está este trabajo en este momento y no parece ser mucho en este momento.

Tengo un poco de curiosidad sobre qué tipo de tareas desea ejecutar desde Eclipse. ¿Por qué no ejecutar tareas desde la línea de comandos?

 15
Author: c_maker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-03 11:21:09

Este es un post antiguo, pero el equipo de SpringSource STS ha lanzado un plugin: http://static.springsource.org/sts/docs/latest/reference/html/gradle /

Las instrucciones de instalación se pueden encontrar aquí: http://static.springsource.org/sts/docs/latest/reference/html/gradle/installation.html

Mi experiencia ha sido bastante positiva hasta ahora. Para proyectos Java sencillos funciona bastante bien. Estoy teniendo algunos problemas para generar archivos war correctos a través de Eclipse, mientras se usa el complemento de Gradle, pero gradle lo hace maravillosamente. Sin embargo, soy relativamente nuevo en gradle y el plugin, por lo que podría ser algo que me falta.

 26
Author: Keith P,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-24 03:45:48

Solución provisional más aceptable para aquellos con fobia a la línea de comandos.

Desde Eclipse, use el menú desplegable Ejecutar / Herramientas Externas / Configuraciones de Herramientas Externas...

Seleccione "Programa" en el panel izquierdo del navegador y luego haga clic en el botón "Nueva configuración de inicio" en la barra de herramientas (primer botón en mi barra de herramientas).

Con la pestaña Principal seleccionada, rellene los siguientes campos:

  1. Nombre: (encima de las pestañas) a "Gradle" (o el nombre que quieras para el lanzador).
  2. Ubicación: Use "Examinar Sistema de archivos..."botón para navegar a tu" gradle.bat " o " gradlew.bat " para correr.
  3. Directorio de trabajo: Use "Examinar espacio de trabajo..."botón para seleccionar el directorio con el "build.gradle" archivo para el proyecto deseado.
  4. Argumentos: Introduzca "gui gui"

Añadir a los argumentos: el conmutador "-b filename.gradle "si usas un archivo de compilación de Gradle que no sea" build.gradle".

Después de esto, sus desarrolladores pueden usar las herramientas Run / External o el botón de la barra de herramientas para iniciar la interfaz gráfica de Gradle. Pueden hacer esto y cerrarlo después de cada uso, o (para evitar el retraso de inicio), minimizarlo cuando no esté en uso.

 21
Author: Blaine,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-20 04:10:50

La respuesta actual a esta pregunta debe ser, Usa el propio plugin de Eclipse de Gradle Buildship :

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

Esto es soportado y desarrollado por el equipo de Gradle y será mejorado continuamente en el futuro. También puede manejar versiones anteriores (con funcionalidad basada en la disponibilidad de la versión de Gradle).

Editar 01-03-2017: Después del lanzamiento de Buildship 2.0, la integración es aún mejor y recomiendo (a menos que ya esté usando IntelliJ, entonces ya está configurado). Todavía faltan algunas características como la capacidad de depurar directamente tareas JavaExec y la capacidad de ejecutar tareas precompiladas/preimportadas, pero esas están en su lista de problemas de Github .

 10
Author: FkYkko,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-02 15:49:59

Sé que esta es una vieja pregunta, pero todavía no creo que sea posible que Eclipse ejecute una compilación de gradle para usted. El complemento Spring Gradle es un gran comienzo, si lo usas, puedes definir un constructor de herramientas externo para ejecutar gradle cuando quieras. Si tienes muchos proyectos y todos se están construyendo con gradle, incluso puedes hacer que gradle agregue la capacidad a tus proyectos de eclipse por ti. Si bien esto se puede limpiar, puedes agregar algo como esto a tu compilación de gradle archivo:

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')
                            }
                        }
                    }
                }
            }
        }
    }

Este es el contenido del archivo almacenado en la parte superior de la jerarquía de directorios bajo: ./.externalToolBuilders / Gradle_Builder.lanzar. Como se define aquí, esto solo se ejecutará después de un" limpio " [Gradle es más costoso en tiempo que el constructor nativo de Java, así que continúa usándolo para la construcción automática]. Nota: el contenido del archivo a continuación también asume que estás usando "git" y el wrapper de gradle. Esto se ve en el valor ATTR_LOCATION. Ajuste según sea necesario. Una cosa buena sobre sin embargo, este enfoque es que puedes hacer que el envoltorio de gradle sea cualquier versión de gradle que desees, ¡y luego eclipse usará esa versión cuando se ejecute!

<?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
Author: JoeG,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-30 11:33:58

Puedes crear un lanzador personalizado desde eclipse que invoque tu compilación de Gradle.

 5
Author: bhagyas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-23 04:51:16

Como siempre, estás mejor con IDEA. El soporte existe desde 2009 http://blogs.jetbrains.com/idea/2009/08/gradle-support /

Y el soporte aún más completo está disponible ahora a través del EAP (¡de uso gratuito!) http://blogs.jetbrains.com/idea/2011/09/keen-to-try-gradle-integration-in-intellij-idea/

 2
Author: opticyclic,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-04-24 13:38:18

Puedes usar el complemento Gradle Eclipse como gradle eclipse para generar un proyecto Eclipse a partir del proyecto gradle. Añade una gran cantidad de objetivos a los proyectos de Eclipse generados y es altamente personalizable.

 2
Author: Bozhidar Batsov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-24 04:08:09

Puedes usar Buildship como indica FkYkko. Sin embargo, una cosa a tener en cuenta es que las tareas Ant se consideran ciudadanos de primera clase en gradle. Esto significa que simplemente puedes importar un script de compilación ant, haciendo referencia a sus tareas de la misma manera que haces referencia a las tareas de gradle. Hacer las cosas de esta manera te permite simplemente usar tus tareas ant desde el primer momento con gradle, sin convertirlas en tareas de gradle.

Por ejemplo, supongamos que tiene un script de compilación llamado build.xml en el mismo directorio como tu constitución.gradle, y una tarea en build.xml llamado buildProj. Puedes importar build.xml, y llama a build proj desde build.gradle así:

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

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

Ver this, o this para más información.

 2
Author: DivDiff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-16 16:17:12

También está Enide Gradle http://www.nodeclipse.org/projects/gradle
esto puede ser usado con o sin Gradle IDE por Pivotal.
En Gradle, Maven o CDT(C++) proyecto.

ejecutar

Como complemento separado, puede tener una configuración diferente para la versión de Gradle y la versión de Java para usar

Este Paquete IDE de Gradle está dentro de Enide

 1
Author: Paul Verest,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-16 15:42:08

Un nuevo proyecto más en 2016 es EGradle

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

Tampoco requiere que el Proyecto sea de naturaleza particular, solo existiendo build.gradle sería suficiente.

La guía del usuario está en la ayuda incorporada (F1 ) o previsualizar en https://rawgit.com/de-jcup/egradle/master/egradle-plugin-main/html/user_guide.html

 1
Author: Paul Verest,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-12 14:13:24

Me encontré con esta pregunta después de instalar el nuevo plugin Buildship que está eliminando gradualmente Spring Tool Suite mencionado por otros aquí.

Las instrucciones para usar la vista de tareas con Buildship son las siguientes:

Usando la vista de Tareas de Gradle

Después de importar correctamente un proyecto de Gradle, el proyecto se muestra en la vista Tareas de Gradle. introduzca la descripción de la imagen aquí Al hacer clic derecho en una determinada tarea de Gradle en la vista Tareas de Gradle, puede ejecutar tarea Gradle seleccionada.

introduzca la descripción de la imagen aquí

De forma predeterminada, el resultado se muestra en la vista Ejecuciones de Gradle. Se también se muestra en la vista de consola similar a la salida que haría get si ejecuta la tarea a través de la línea de comandos.

Fuente

 0
Author: Philip Kirkbride,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-16 19:03:18