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:

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

  1. 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:

  1. Controlla se la versione del gradle utilizzata dal wrapper è già in ~ / .gradle / wrapper / dists
  2. 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.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow