La mejor manera de agregar soporte de Gradle al Proyecto IntelliJ

168

He examinado bastante y no he encontrado la mejor solución para convertir un proyecto IntelliJ existente a Gradle. Trabajo en un entorno de equipo y actualmente compartimos el archivo .ipr ya que tenemos algunas configuraciones de compilación que rastreamos. Eventualmente nos libraremos de aquellos a favor de Gradle, pero no puedo arruinar demasiado las cosas hasta que se complete la conversión de Gradle.

Además, nuestros archivos fuente Java se encuentran en la raíz del directorio src en lugar de src / main / java como es estándar.

¿Hay alguna manera de agregar Gradle a mi proyecto que no me haga eliminar y volver a crear mi proyecto IntelliJ y no fastidie a todos los demás cuando hagan un Git pull?

Gremash
fuente
2
Para responder la pregunta de su directorio de origen, debe anular el directorio de origen predeterminado con sourceSets . Vea cómo lo hicimos en el controlador MongoDB Java: github.com/mongodb/mongo-java-driver/blob/…
Trisha

Respuestas:

208

Añadir:

build.gradle 

en la carpeta del proyecto raíz y use el complemento, por ejemplo:

apply plugin: 'idea'
//and standard one
apply plugin: 'java'

y con este fuego desde la línea de comando:

gradle cleanIdea 

y después de eso:

gradle idea

Después de eso todo debería funcionar

SuperAndrew
fuente
77
Al intentar esta solución, ¿alguien encontró el error "El módulo 'xx' no está respaldado por gradle? Si es así, ¿cómo se resolvió
Marquis Blount
Gracias, esto me estaba volviendo loco y no pude encontrar la manera de hacer que IntelliJ actualice las dependencias del proyecto después de agregarlo a build.gradle.
Amala
La idea de gradle (que depende de ideaProject, ideaModule, ideaWorkspace) no funcionó para mí, ya que ideaModule seguía fallando. En cambio, la tarea gradle ideaProject funcionó bien y el proyecto ahora está habilitado para Gradle.
paranza
Bien, hay un problema con este enfoque. Obtendrá el error "las dependencias no se pueden aplicar a groovy.lang.closure". Mira esta solución en su lugar: stackoverflow.com/a/17168175/2517730
Yar
1
Esto está algo desactualizado, ya que la idea del complemento de Gradle todavía recurre al proyecto de idea basado en archivos, mientras que el proyecto basado en carpetas es estándar y mucho más útil
Xerus
74

No hay necesidad de eliminar ningún .imlarchivo. Sigue esto:

  • cerrar el proyecto
  • File -> Open... y elige tu recién creado build.gradle
  • IntelliJ le preguntará si desea:
    • Open Existing Project
    • Delete Existing Project and Import
  • Elija la segunda opción y ya está
Michal Kordas
fuente
¿Cómo puedo solucionar el problema, que el nuevo proyecto tiene que estar en otra carpeta?
barracuda317
¿Esto agrega los JAR de su estructura de proyecto | Las bibliotecas como dependencias y crean un EAR (usando el complemento) como se define en Estructura del proyecto | Artefactos?
NOTIFICAR el
@NOTiFY Dudo que lo haga. Es equivalente a revisar el proyecto desde cero.
Michal Kordas
@Michal Kordas Agregué todas las dependencias a mano, no tardé en acercarme al tiempo que esperaba y ahora agregué la creación WAR, JAR & EAR. Hay una solicitud de función para esto en JetBrains youtrack.jetbrains.com/issue/IDEABKL-6990
NOTiFY
46

Otra forma, más simple.

Agrega tu

build.gradle

archivo a la raíz de su proyecto. Cierra el proyecto. Elimine manualmente el archivo * .iml. Luego elija "Importar proyecto ...", navegue hasta el directorio de su proyecto, seleccione el archivo build.gradle y haga clic en Aceptar.

Guildenstern70
fuente
21

En IntelliJ 2017.2.4 simplemente cerré el proyecto y lo volví a abrir y recibí un cuadro de diálogo que me preguntaba si quería vincularme con build.gradle que abrió el cuadro de diálogo de importación para los proyectos de Gradle.

No es necesario eliminar ningún archivo ni agregar el complemento de idea a build.gradle .

Raniz
fuente
2
Puede confirmar que esto funciona bien. Simplemente ejecute gradle init en la raíz del proyecto, luego obtendrá el diálogo la próxima vez que abra el proyecto.
Alex H.
16

Solo como referencia futura, si ya tiene un Mavenproyecto, todo lo que necesita hacer es hacer un gradle initen su directorio de proyecto que generará build.gradley otras dependencias, luego haga uno gradle builden el mismo directorio.

Yar
fuente
2
De interés: Crear nuevas compilaciones de Gradle - Notas: gradle initpuede generar varios tipos diferentes de proyectos, e incluso sabe cómo traducir pom.xmlarchivos simples a Gradle.
Guy Coder
7

Estoy usando la versión 12 de IntelliJ.

Resolví un problema similar creando un proyecto completamente nuevo y "Retirar del control de versiones" Combinar los dos proyectos más tarde fue bastante fácil.

hipopótamo
fuente
1
  1. Agregue build.gradleen el directorio raíz de su proyecto.

  2. Entonces solo File->Invalidate Caches / Restart

Aquí hay un build.gradle básico para proyectos Java:

plugins {
    id 'java'
}

sourceCompatibility = '1.8'
targetCompatibility = '1.8'
version = '1.2.1'
Gayan Weerakutti
fuente