¿Cómo definir la casa de Gradle en IDEA?

390

Estoy tratando de importar un proyecto Gradle en IntelliJ, y cuando llego al Gradle Homecuadro de texto, no se completa automáticamente, ni escribo en la ruta del Gradle Homeresultado en una ubicación válida: tengo la GRADLE_USER_HOMEvariable de entorno establecida (según lo que creo que es !) la ruta correcta, y he podido importar con éxito este mismo proyecto en Eclipse. ¿Alguna sugerencia?

usuario2699970
fuente
Sí, la discusión en el sitio de JetBrains parece indicar que se trata de un problema con los enlaces simbólicos: consulte la respuesta de Denis.Zhdanov aquí: blog.jetbrains.com/idea/2013/04/gradle-improvements-at-121
josh-cain
1
Buena pregunta. ¿Desea seleccionar una respuesta válida para esto? No sigas los puntos, sugeriría @Trenton's. Es posible que también desee mencionar el sistema operativo del que se trataba en la pregunta.
akauppi
1
Si elige "Usar el envoltorio de Gradle predeterminado (recomendado)", no necesita configurar Gradle Home. Desafortunadamente, no desactivan el cuadro de entrada, simplemente indican que está deshabilitado por el tipo de cursor que tiene cuando pasa el mouse sobre él.
Andrew Grimm

Respuestas:

479

Puede escribir un script de gradle simple para imprimir su GRADLE_HOMEdirectorio.

task getHomeDir {
    doLast {
        println gradle.gradleHomeDir
    }
}

y nómbralo build.gradle.

Luego ejecútalo con:

gradle getHomeDir

Si instaló con homebrew, use brew info gradlepara encontrar la ruta base (es decir /usr/local/Cellar/gradle/1.10/), y solo agregue libexec.

La misma tarea en Kotlin en caso de que uses build.gradle.kts:

tasks.register("getHomeDir") {
    println("Gradle home dir: ${gradle.gradleHomeDir}")
}
Heath Borders
fuente
10
Para aquellos en Linux Mint / Ubuntu, entonces /usr/share/gradlees el resultado de este script gradle.
Arthur
3
@ Steve feliz de ayudar. Esta noche yo mismo fui un beneficiario. twitter.com/TrentonL/status/729546995686248448
Trenton
3
Esto funcionó para mí, pero es tan estúpido. Utilicé el SDK Manager de Gradle para instalar Gradle. ¿Por qué no puede IntelliJ usar eso?
AutonomousApps
En Fedora 25 eso es / usr / share / gradle también.
Uri Simchoni
2
Para Arch Linux es:/usr/share/java/gradle
SirWojtek
273

Instalado en una Mac a través de Homebrew, la ruta

/usr/local/opt/gradle/libexec

es preferible a

/usr/local/Cellar/gradle/X.X/libexec

ya que el primero sobrevivirá a las actualizaciones de la versión.

Trenton
fuente
Este es también el caso de Android Studio (a partir de AS 1.3, de todos modos).
James
Agradable, terminé usando esta bestia para configurar mi GRADLE_HOME (para evitar problemas al actualizar gradle con brew) export GRADLE_HOME=`python -c "import os; print(os.path.realpath('$(which gradle)'))" | xargs dirname | xargs dirname | xargs printf "%s/libexec"` Si alguien puede simplificar, eso también sería útil :)
mlo55
2
@ mlo55 es mucho más fácil de usarexport GRADLE_HOME=$(realpath $(brew --prefix gradle))/libexec
delitescere
@ mlo55 ¿por qué hiciste eso en Python en lugar de solo llamar which gradleal shell?
Mike Young
@MikeYoung, no tenía instalado RealPath instalado en ese momento. nb: ahora uso export GRADLE_HOME="$(brew --prefix gradle)/libexec/"según lo recomendado por @delitescene. Compare ls "$(brew --prefix gradle)/libexec/"con ls "$(which gradle)/libexec/"osx, si está usando cerveza.
mlo55
93

Si instaló gradle con homebrew, entonces la ruta es:

/usr/local/Cellar/gradle/X.X/libexec

Donde XX es la versión de gradle (actualmente 2.1)

HasanAboShally
fuente
46

Si está utilizando IntelliJ, simplemente haga lo siguiente.

  1. Cerrar el proyecto
  2. (re) Abrir el proyecto
  3. verá el mensaje "Importar proyecto gradle" en la parte inferior derecha. hacer clic.
  4. seleccione "Usar envoltorio de gradle predeterminado". no "Usar distribución local de gradle"

ingrese la descripción de la imagen aquí

Eso es todo.

Anderson
fuente
Si selecciona "Usar envoltura de Gradle predeterminada", ¿no es necesario suministrar Gradle a casa?
Andrew Grimm
Respuesta: sí. Culpe a la mala experiencia de usuario que no había notado antes.
Andrew Grimm
1
"Use gradle 'wrapper' task configuration"funcionó para mí - idk lo que significa pensamiento
scottysseus
1
Si desea que IDEA defina su versión de Gradle para usted a partir de su script de compilación real, seleccione "Usar configuración de tarea 'wrapper' de
gradle
@AndrewGrimm En mi caso, este botón de opción está desactivado. Entonces no puedo seleccionarlo. ¿Algunas ideas?
Mikheil Zhghenti
42

Esto es lo que me ayudó a resolver el problema de no tener el hogar de Gradle configurado para IDEA al importar un proyecto de Gradle.

TRES OPCIONES: (A) Contenedor predeterminado (B) "configuración de la tarea" envoltura 'de gradle "O (C)" distribución local de gradle "definida por jetbrains: https://www.jetbrains.com/help/idea/gradle-settings .html

A. Contenedor predeterminado (recomendado)

Si puede, seleccione esta opción recomendada. Si está atenuado, vea la opción C, que luego debería establecer su valor predeterminado para todos los proyectos posteriores.

B. Configuración de la tarea 'Wrapper' de Gradle

Si desea que IDEA defina su versión de Gradle para usted a partir de su script de compilación

  1. Establezca esta opción si define sus versiones de compilación de gradle como una tarea dentro de su compilación de gradle real.

Ejemplo a continuación de jetbrains: https://www.jetbrains.com/help/idea/gradle-settings.html

ingrese la descripción de la imagen aquí

(útil si no desea compartir compilaciones de gradle entre proyectos)

C. Distribución local de Gradle

1. Run the following command to get gradle location:

   brew info gradle (if gradle was installed with homebrew)


2. You are looking for something like this:

   /usr/local/Cellar/gradle/4.8.1


3. Next, append 'libexec' to the gradle location you just found:

/usr/local/Cellar/gradle/4.8.1/libexec

Esto se debe a que "libexec debe ser utilizado por otros demonios y utilidades del sistema ejecutados por otros programas" (es decir, IDEA). Consulte /unix/312146/what-is-the-purpose-of-usr-libexec

4. Finally, put that new path in the Gradle home input box if IDEA prompts you.

ingrese la descripción de la imagen aquí

  1. IDEA ahora debería haberte permitido presionar OK ingrese la descripción de la imagen aquí
Cloudish123
fuente
Para mí, no importa lo que haga, obtengo: Causa: no se puede encontrar la ruta de certificación válida para el objetivo solicitado
slashdottir
@slashdottir puede tener algo que ver con la red que está utilizando (si está en el trabajo o en la universidad) o puede que necesite cerrar IDEA, reiniciar la máquina y reconstruir desde un nuevo proyecto. Consulte stackoverflow.com/questions/42415666/… , aunque sea Android-studio, podría ser útil. Avíseme si algo de esto ayuda.
Cloudish123
1
Finalmente, simplemente cambié a la construcción de gradle desde comand-line - funcionó bien de esa manera - gracias
slashdottir
9

Esta es una instrucción solo para MAC. Yo tuve el mismo problema. Lo resolví configurando $GRADLE_HOMEen .bash_profile. Así es como lo haces:

  • Abierto .bash_profile(generalmente se encuentra en el directorio de inicio del usuario).
  • Agregue las siguientes líneas para actualizar la $PATHvariable: export GRADLE_HOME=/usr/local/opt/gradle/libexec export PATH=$GRADLE_HOME/bin:$PATH
  • Guárdalo
  • Aplica tus cambios ejecutando source .bash_profile

Escribí mi propio artículo con instrucciones en caso de que alguien encuentre el mismo problema.

skryvets
fuente
Gracias por tu respuesta. Para la versión gradle4.7: export GRADLE_HOME = / usr / local / Cellar / gradle / 4.7 / libexec export PATH = $ GRADLE_HOME / bin: $ PATH
Piash Sarker
1
@PiashSarker, puedo ver que /usr/local/opt/gradle/libexeces un enlace simbólico a /usr/local/Cellar/gradle/4.7/libexec . Si la versión de Gradle se actualizará, el enlace simbólico también se actualizará automáticamente. Dicho esto, aún es más seguro de usar /usr/local/opt/gradle/libexec. Por favor corrígeme si estoy equivocado.
skryvets
9

C: \ Users \ <_username> \ .gradle \ wrapper \ dists \ gradle- <_version> -all \ <_number_random_maybe> \ gradle- <_version>

\ Android studio \ gradle no funcionó para mí.

Y el "envoltorio de gradle predeterminado" no se configuró al importar (clonar) el proyecto desde bitbucket

Si causa problemas para descubrir el camino, aquí está mi camino:

C: \ Users \ prabs \ .gradle \ wrapper \ dists \ gradle-5.4.1-all \ 3221gyojl5jsh0helicew7rwx \ gradle-5.4.1

Prabs
fuente
No es muy útil publicar una ruta que solo funcione con su nombre de usuario y números de versión particulares. Tampoco es útil no proponer ninguna solución.
MarkHu
6

En una Mac, idealmente debería estar en: /Applications/Android Studio.app/Contents/gradle/gradle-2.14.1

(Reemplace la cadena de versión con la última)

AnupamChugh
fuente
77
@RuchirBaronia Solo si está utilizando Android Studio
hitch.united
Esa no es una respuesta en absoluto. Lo que debería ser "idealmente" no es lo que necesita ser respondido.
wyde19
Obviamente, la versión de Gradle seguirá aumentando a lo largo de los años. Prueba esto para ver lo que tienes actualmente:ls -d "/Applications/Android Studio.app/Contents/gradle"/*
MarkHu
3

AFAIK es GRADLE_HOME no GRADLE_USER_HOME (ver instalación de gradle http://www.gradle.org/installation ).

Por otro lado, jugué un poco con el soporte de Gradle en Idea 13 Cardea y creo que Idea no descubre automáticamente el hogar de Gradle. Si es así, puede presentar un problema en youtrack.

Además, si usa gradle 1.6+ puede usar el soporte de Graldle para configurar la construcción y el contenedor. Creo que la idea descubre automáticamente el proyecto de gradle basado en el contenedor.

$ gradle setupBuild --type java-library

$ envoltura de gradle

Nota: Tipos de biblioteca admitidos: básico, maven, java

Saludos

jtonic
fuente
3

Si está utilizando MacPorts, la ruta es

/opt/local/share/java/gradle
Daniel Scott
fuente
2

Tuve que configurar el SDK del proyecto antes de seleccionar la ruta de Gradle. Una vez que se configuró correctamente, tuve que elegir "Usar envoltorio de Gradle predeterminado (recomendado) en el cuadro de diálogo" Importar proyecto de Gradle ".

Todavía funciona si elimino gradle usando brew:

$ brew remove gradle

ingrese la descripción de la imagen aquí

usuario674669
fuente
2

Aquí es donde está mi casa de Gradle (Arch Linux):

/usr/share/java/gradle/
VBorisoff
fuente
1

Tuve algunos errores extraños en los que no podía encontrar mi clase, tuve que hacer clic derecho en mi carpeta src (estaba roja) para "Crear directorio como" -> Origen de la carpeta de origen

Burf2000
fuente
0

Haga clic en Nuevo -> Proyecto de fuentes existentes -> Importar proyecto gradle ...

Entonces Idea reconoció gradle automáticamente.

Martin Pfeffer
fuente
0

No pude hacer que aceptara mi selección de Gradle JVM hasta que eliminé un JDK roto

La siguiente ventana es de Archivo -> Otras configuraciones -> Estructura para nuevos proyectos ...

Gradle JVM, es decir, ruta de inicio JDK

Tuve una entrada roja de 1.8 JDK SDK aquí, una vez que eliminé ese error de Gradle JVM a continuación desapareció y pude pasar al siguiente paso

Error JVM de Gradle

Kevin
fuente
-1

En caso de que esté utilizando Mac, lo más probable es que su hogar de gradle sea, /usr/local/gradle-2.0por ejemplo.

En preferencia de IDEA, busque gradle y configure gradle home como se indicó anteriormente. Deberia de funcionar

RAM
fuente