¿Cómo cambiar la versión del 'contenedor gradle predeterminado' en IntelliJ IDEA?

94

Quiero usar Gradle 1.10 en lugar de 1.9. Parece que no puedo encontrar dónde cambiar esto.

Si pongo esto:

task wrapper(type: Wrapper) {
    gradleVersion = '1.10'
}

en mi build.gradley reconstruir, está construido con Gradle 1.9 nuevamente (por lo que en realidad no sucede nada).

Estas parecen ser todas las configuraciones: (y la sección de ayuda de IntelliJ sobre Gradle no ayuda en absoluto :() ¿Qué significa "no configurado para el proyecto actual"?

Tipo
fuente
1
¿Regeneraste la envoltura gradle(w) wrapperdespués de cambiarla gradleVersion?
Peter Niederwieser
2
he intentado esto: stackoverflow.com/questions/24460299/… simplemente elimine los archivos de envoltura y luego ejecute la wrappertarea nuevamente
The End
No es necesario eliminar ningún archivo.
Peter Niederwieser
1
Las tareas de Gradle se pueden ejecutar desde IntelliJ, por lo que también debería poder ejecutar la tarea contenedora. Además, quizás de esto se trata "usar envoltorio gradle personalizable" (pero no estoy seguro).
Peter Niederwieser
1
Gracias a todos por su ayuda, me las arreglé para que funcionara cambiando a un contenedor gradle personalizable y regenerando el contenedor ejecutando la wrappertarea. Sin embargo, todavía estoy confundido sobre qué es realmente la envoltura gradle predeterminada .
Bloke

Respuestas:

111

La forma más sencilla es ejecutar el siguiente comando desde la línea de comandos (consulte Actualización de Gradle Wrapper en la documentación):

./gradlew wrapper --gradle-version 5.5

Además, puede utilizar el --distribution-typeparámetro con el valor bino allpara elegir un tipo de distribución. Use el alltipo de distribución para evitar una pista de IntelliJ IDEA o Android Studio que le ofrecerá descargar Gradle con fuentes:

./gradlew wrapper --gradle-version 5.5 --distribution-type all

O puede crear una wrappertarea personalizada

task wrapper(type: Wrapper) {
    gradleVersion = '5.5'
}

y corre ./gradlew wrapper.

Miguel
fuente
2
Si ejecuta la tarea en un proyecto raíz que contiene subproyectos, hágalo ./gradlew :wrappercon dos puntos delante del nombre de la tarea.
Philippe
36

Abra el archivo gradle/wrapper/gradle-wrapper.propertiesen su proyecto. Cambie la versión en el distributionUrlpara usar la versión que desea usar, por ejemplo,

distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip
Aperifons
fuente
4
mejor utilizar la tarea Gradle crearon para este fin por lo que los scripts de actualización correctamente, etc.
dabluck
también actualizan sus archivos binarios y scripts, que no obtiene a menos que ejecute la tarea de actualización. esto podría potencialmente crear incompatibilidades
dabluck
1
Sí. Consulte Actualización de Gradle Wrapper en la documentación de Gradle.
Lu55
4

Solo quería decir que golpeé esto después de actualizar los componentes de Android Studio.

Lo que funcionó para mí fue abrir gradle-wrapper.properties y actualizar la versión de gradle utilizada. A partir de ahora, para mis proyectos, la línea dice:

distributionUrl=https\://services.gradle.org/distributions/gradle-4.5-all.zip
MacD
fuente
3

./gradlew wrapper --gradle-version=5.4.1 --distribution-type=bin

https://gradle.org/install/#manually

Verificar:

 ./gradlew tasks

Para ingresarlo sin comando:

ir a-> gradle/wrapper/gradle-wrapper.properties URL de distribución y cámbielo a la versión zip actualizada

salida:

 ./gradlew tasks
Downloading https://services.gradle.org/distributions/gradle-5.4.1-bin.zip
...................................................................................

Welcome to Gradle 5.4.1!

Here are the highlights of this release:
 - Run builds with JDK12
 - New API for Incremental Tasks
 - Updates to native projects, including Swift 5 support

For more details see https://docs.gradle.org/5.4.1/release-notes.html

Starting a Gradle Daemon (subsequent builds will be faster)

> Starting Daemon 

fuente
2

En build.gradleañadir wrapper { gradleVersion = '6.0' }

kreker
fuente
1

La tarea 'contenedor' en gradle se llama si se usa el comando gradlew, si usa el comando gradle para construir la tarea contenedor no se llama. Por lo tanto, hay dos formas de cambiar la versión de Gradle.

  1. Use el comando 'gradlew build', este comando llamará a la tarea contenedora que mencionó. Esa tarea cambiará el parámetro 'distributionUrl' en el archivo gradle-wrapper.properties y descargará automáticamente la versión de gradle que desee. Ejemplo de distributionUrl en el archivo de la versión 4.2. distributionUrl = https: //services.gradle.org/distributions/gradle-4.2-bin.zip

  2. Si no está utilizando gradle wrapper, simplemente descargue la versión del gradle que desee y configure la ruta de la variable de entorno y también muéstrela a IDEA.

PD: para obtener más información sobre la envoltura de gradle, le sugiero que lea: https://docs.gradle.org/current/userguide/gradle_wrapper.html

M. Oguz Ozcan
fuente
1

Me enfrentaba al mismo problema para cambiar la versión predeterminada de gradle de 5.0 a 4.7, a continuación se muestran los pasos para cambiar la versión predeterminada de gradle en intellij 1) Cambiar la versión de gradle en gradle / wrapper / gradle-wrapper.properties en esta propiedad distributionUrl 2) Presione el botón de actualización en el menú de proyectos de Gradle para que comience a descargar la nueva versión zip de Gradleingrese la descripción de la imagen aquí


Saurabh
fuente
0

Primero, deje que gradle establezca la URL de distribución correcta

cd projectDirectory
./gradlew wrapper --gradle-version 2.3.0

Luego, puede que no sea necesario, pero eso es lo que hice: editar build.gradle del proyecto para que coincida con la versión

    dependencies {
    classpath 'com.android.tools.build:gradle:2.3.0'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

Finalmente, elimine las carpetas .gradle y gradle y los archivos gradlew y gradlew.bat. ( Respuesta original )

Ahora, reconstruya el proyecto.

Como las otras respuestas no me fueron suficientes y el comentario que señala estos pasos adicionales es fácil de pasar por alto, aquí como una respuesta separada

Lucidbrot
fuente