gradle
Gradle Wrapper
Ricerca…
Gradle Wrapper e Git
Come discusso nell'introduzione, la funzionalità di gradle wrapper funziona perché un jar viene scaricato nel progetto da utilizzare quando viene eseguito il comando gradlew
. Tuttavia, questo potrebbe non essere eseguito e dopo la prossima estrazione del progetto, gradlew
non verrà eseguito con l'errore:
Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain
Questo perché il tuo .gitignore probabilmente includerà *jar
per i progetti Java. Quando il wrapper gradle è stato inizializzato, copia nel file gradle/wrapper/gradle-wrapper.jar
. Quindi è necessario aggiungerlo all'indice git e commetterlo. Fatelo con:
git add -f gradle/wrapper/gradle-wrapper.jar
git ci
Con il -f
essere per costringerlo.
Introduzione di Gradle Wrapper
Gradle ha la possibilità di aggiungere un wrapper ai progetti. Questo wrapper riduce la necessità per tutti gli utenti o sistemi di integrazione continua di avere Gradle installato. Inoltre previene i problemi di versione in cui vi è incompatibilità tra la versione utilizzata dal progetto e quella installata dagli utenti. Lo fa installando una versione di gradle localmente nel progetto.
Gli utenti del progetto eseguono semplicemente:
> ./gradlew <task> # on *Nix or MacOSX
> gradlew <task> # on Windows
Per configurare un progetto per utilizzare un wrapper, gli sviluppatori:
- Eseguire:
gradle wrapper [--gradle-version 2.0]
Dove --gradle-version X
è facoltativa e se non viene fornita (o l'attività wrapper non è inclusa, come mostrato di seguito), la versione utilizzata è la versione di gradle in uso.
- Per forzare il progetto a utilizzare una versione specifica, aggiungi quanto segue a
build.gradle
:
task wrapper(type: Wrapper) {
gradleVersion = '2.0'
}
Quando viene eseguito il comando gradle wrapper
, crea i file:
the_project/
gradlew
gradlew.bat
gradle/wrapper/
gradle-wrapper.jar
gradle-wrapper.properties
La documentazione ufficiale su questa funzione è disponibile su https://docs.gradle.org/current/userguide/gradle_wrapper.html .
Usa Gradle localmente servito nel wrapper Gradle
Se si desidera mantenere la copia locale di Gradle e lasciare che Wrapper lo utilizzi nelle build, è possibile impostare distributionUrl
punta alla propria copia sull'attività wrapper
:
task wrapper(type: Wrapper) {
gradleVersion = '2.0'
distributionUrl = "http\://server/dadada/gradle-${gradleVersion}-bin.zip"
}
dopo aver eseguito gradle wrapper
, viene creato lo script di shell gradlew
e il gradle/wrapper/gradle-wrapper.properties
è configurato per utilizzare l'URL fornito per scaricare Gradle.
Usando il Gradle Wrapper dietro un proxy
La prima volta che un utente esegue il gradlew
un progetto, dovrebbe essere realizzato che farà due cose fondamentali:
- Controlla se la versione del gradle utilizzata dal wrapper è già in ~ / .gradle / wrapper / dists
- In caso contrario, scaricare l'archivio della versione da Internet
Se ci si trova in un ambiente che richiede tutto il traffico esterno per passare attraverso un proxy, il passaggio 2 fallirà (a meno che non si tratti di un ambiente proxy trasparente). Di conseguenza, è necessario assicurarsi che siano impostati i parametri del proxy JVM .
Ad esempio, se hai una configurazione proxy base senza autenticazione, imposta semplicemente la variabile d'ambiente JAVA_OPTS
o GRADLE_OPTS
con:
-Dhttps.proxyPort=<proxy_port> -Dhttps.proxyHost=<hostname>
Quindi un esempio completo su Windows sarebbe:
set JAVA_OPTS=-Dhttps.proxyPort=8080 -Dhttps.proxyHost=myproxy.mycompany.com
Se tuttavia l'ambiente richiede anche l'autenticazione, è anche necessario rivedere le altre opzioni su https://docs.oracle.com/javase/8/docs/api/java/net/doc-files/net-properties. html .
NOTA: questa configurazione proxy è in aggiunta a qualsiasi configurazione proxy per l'accesso al repository delle dipendenze.