Come cambiare la versione del "wrapper gradle predefinito" in IntelliJ IDEA?


94

Voglio usare Gradle 1.10 invece di 1.9. Non riesco a trovare dove cambiare questo.

Se metto questo:

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

in my build.gradlee rebuild, è costruito di nuovo con Gradle 1.9 (quindi non succede nulla).

Queste sembrano essere tutte le impostazioni: (e la sezione della guida di IntelliJ su Gradle non aiuta affatto :() Cosa significa "non configurato per il progetto corrente"?


1
Hai rigenerato l'involucro con gradle(w) wrapperdopo il cambio gradleVersion?
Peter Niederwieser

2
ho provato questo: stackoverflow.com/questions/24460299/… elimina i file wrapper e quindi esegui di wrappernuovo l' attività
The End

Non è necessario eliminare alcun file.
Peter Niederwieser

1
Le attività Gradle possono essere eseguite da IntelliJ, quindi dovresti essere in grado di eseguire anche l'attività wrapper. Inoltre, forse questo è ciò di cui parla "usa wrapper gradle personalizzabile" (ma non ne sono sicuro).
Peter Niederwieser

1
Grazie ragazzi per il vostro aiuto, sono riuscito a farlo funzionare passando al wrapper gradle personalizzabile e rigenerando il wrapper eseguendo l' wrapperattività. Tuttavia, sono ancora confuso su cosa sia effettivamente il wrapper gradle predefinito .
Bloke

Risposte:


111

Il modo più semplice è eseguire il seguente comando dalla riga di comando (vedere Aggiornamento del Gradle Wrapper nella documentazione):

./gradlew wrapper --gradle-version 5.5

Inoltre, puoi utilizzare il --distribution-typeparametro con bino il allvalore per scegliere un tipo di distribuzione. Usa il alltipo di distribuzione per evitare un suggerimento da IntelliJ IDEA o Android Studio che ti offriranno di scaricare Gradle con le fonti:

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

Oppure è possibile creare un wrappercompito

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

e corri ./gradlew wrapper.


2
Se si esegue l'attività in un progetto radice che contiene sottoprogetti, eseguire ./gradlew :wrappercon i due punti davanti al nome dell'attività.
Philippe

36

Apri il file gradle/wrapper/gradle-wrapper.propertiesnel tuo progetto. Modificare la versione in distributionUrlper utilizzare la versione che si desidera utilizzare, ad es.

distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip

4
meglio usare l'attività gradle che hanno creato per questo scopo in modo che gli script si aggiornino correttamente, ecc.
dabluck

aggiornano anche i propri file binari e script, che non si ottengono a meno che non si esegua l'attività di aggiornamento. questo potrebbe potenzialmente creare incompatibilità
dabluck

1
Sì. Vedere Aggiornamento del Gradle Wrapper nella documentazione Gradle.
Lu55

4

Volevo solo dire che l'ho colpito dopo aver aggiornato i componenti di Android Studio.

Quello che ha funzionato per me è stato aprire gradle-wrapper.properties e aggiornare la versione gradle utilizzata. A partire da ora per i miei progetti la riga dice:

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

3

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

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

Controllare:

 ./gradlew tasks

Per inserirlo senza comando:

vai su-> gradle/wrapper/gradle-wrapper.properties URL di distribuzione e cambialo nella versione zip aggiornata

produzione:

 ./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 

2

In build.gradleaggiunta wrapper { gradleVersion = '6.0' }


1

L'attività 'wrapper' in gradle viene chiamata se viene utilizzato il comando gradlew, se si utilizza il comando gradle per creare l'attività wrapper non viene chiamata. Quindi, ci sono due modi per cambiare la tua versione gradle.

  1. Usa il comando 'gradlew build', questo comando chiamerà l'attività wrapper che hai menzionato. Quell'attività cambierà il parametro 'distributionUrl' nel file gradle-wrapper.properties e scaricherà automaticamente la versione gradle desiderata. Esempio di distributionUrl nel file per la versione 4.2. distributionUrl = https: //services.gradle.org/distributions/gradle-4.2-bin.zip

  2. Se non stai usando gradle wrapper, scarica semplicemente la versione del gradle che desideri e imposta il percorso della variabile d'ambiente e mostralo anche a IDEA.

PS per maggiori informazioni su gradle wrapper ti consiglio di leggere: https://docs.gradle.org/current/userguide/gradle_wrapper.html


1

Stavo affrontando lo stesso problema per la modifica della versione gradle predefinita da 5.0 a 4.7, di seguito sono riportati i passaggi per modificare la versione gradle predefinita in intellij 1) Cambia la versione gradle in gradle / wrapper / gradle-wrapper.properties in questa proprietà distributionUrl 2) Premi il pulsante di aggiornamento nel menu progetti gradle in modo che inizi a scaricare la nuova versione zip gradleinserisci qui la descrizione dell'immagine



0

Innanzitutto, lascia che gradle imposti l'URL di distribuzione corretto

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

Quindi, potrebbe non essere necessario, ma è quello che ho fatto, modifica il file build.gradle del progetto in modo che corrisponda alla versione

    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
}

Infine, elimina le cartelle .gradle e gradle e i file gradlew e gradlew.bat. ( Risposta originale )

Ora ricostruisci il progetto.

Poiché le altre risposte non erano sufficienti per me e il commento che indica questi passaggi aggiuntivi è facile da trascurare, qui come risposta separata

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.