Suche…


Gradle Wrapper und Git

Wie in der Einführung beschrieben, funktioniert die Gradle-Wrapper-Funktion, weil in das Projekt eine JAR- gradlew wird, die beim gradlew Befehls gradlew wird. Dies kann jedoch nicht festgeschrieben werden. Nachdem das Projekt das nächste Mal gradlew wird gradlew nicht mit dem Fehler ausgeführt:

Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain

Dies liegt daran, dass Ihre .gitignore *jar -Datei wahrscheinlich für Java-Projekte enthalten wird. Wenn der Gradle-Wrapper initialisiert wurde, wird er in die Datei gradle/wrapper/gradle-wrapper.jar . Daher müssen Sie es dem Git-Index hinzufügen und es festschreiben. Tun Sie dies mit:

git add -f gradle/wrapper/gradle-wrapper.jar
git ci

Mit dem -f zu zwingen.

Gradle Wrapper Einführung

Gradle kann Projekten einen Wrapper hinzufügen. Mit diesem Wrapper wird die Installation von Gradle für alle Benutzer oder Systeme mit kontinuierlicher Integration vermieden. Außerdem werden Versionsprobleme vermieden, bei denen eine Inkompatibilität zwischen der vom Projekt verwendeten Version und der von den Benutzern installierten Version besteht. Dazu wird eine Version von Gradle lokal im Projekt installiert.

Benutzer des Projekts werden einfach ausgeführt:

> ./gradlew <task> # on *Nix or MacOSX
> gradlew <task>   # on Windows

So richten Sie ein Projekt für die Verwendung eines Wrappers ein:

  1. Ausführen:
gradle wrapper [--gradle-version 2.0]

Wenn --gradle-version X optional ist und wenn nicht angegeben (oder die Wrapper-Task nicht enthalten ist, wie unten gezeigt), ist die verwendete Version die Version von Gradle.

  1. Um zu erzwingen, dass das Projekt eine bestimmte Version verwendet, fügen Sie dem build.gradle Folgendes build.gradle :
task wrapper(type: Wrapper) {
    gradleVersion = '2.0'
}

Wenn der Befehl gradle wrapper ausgeführt wird, werden die Dateien erstellt:

the_project/
  gradlew
  gradlew.bat
  gradle/wrapper/
    gradle-wrapper.jar
    gradle-wrapper.properties

Die offizielle Dokumentation zu dieser Funktion finden Sie unter https://docs.gradle.org/current/userguide/gradle_wrapper.html .

Verwenden Sie im Gradle-Wrapper lokal servierte Gradle

Wenn Sie eine lokale Kopie des Gradle behalten und den Wrapper in den Builds verwenden lassen möchten, können Sie die distributionUrl für Ihre Kopie in der wrapper Task wrapper :

task wrapper(type: Wrapper) {
    gradleVersion = '2.0'
    distributionUrl = "http\://server/dadada/gradle-${gradleVersion}-bin.zip"
}

Nach dem Ausführen des gradle wrapper wird das Shell-Skript gradlew erstellt, und gradle/wrapper/gradle-wrapper.properties ist so konfiguriert, dass die bereitgestellte URL zum Herunterladen des Gradle verwendet wird.

Verwenden des Gradle-Wrappers hinter einem Proxy

gradlew ein Benutzer zum ersten Mal die gradlew eines Projekts gradlew , sollte klar sein, dass er zwei wichtige Dinge tun wird:

  1. Prüfen Sie, ob die Version des von dem Wrapper verwendeten Gradels bereits in ~ / .gradle / wrapper / dists enthalten ist
  2. Wenn nicht, laden Sie das Archiv der Version aus dem Internet herunter

Wenn Sie sich in einer Umgebung befinden, in der der gesamte externe Datenverkehr einen Proxy durchläuft, schlägt der zweite Schritt fehl (es sei denn, es handelt sich um eine transparente Proxy-Umgebung). Aus diesem Grund müssen Sie sicherstellen, dass die JVM- Proxy-Parameter festgelegt sind.

Wenn Sie beispielsweise über ein einfaches Proxy-Setup ohne Authentifizierung verfügen, setzen Sie einfach die Umgebungsvariable JAVA_OPTS oder GRADLE_OPTS mit:

-Dhttps.proxyPort=<proxy_port> -Dhttps.proxyHost=<hostname>

Ein abgeschlossenes Beispiel für Windows wäre also:

set JAVA_OPTS=-Dhttps.proxyPort=8080 -Dhttps.proxyHost=myproxy.mycompany.com

Wenn Ihre Umgebung jedoch auch eine Authentifizierung erfordert, sollten Sie auch Ihre anderen Optionen unter https://docs.oracle.com/javase/8/docs/api/java/net/doc-files/net-properties überprüfen . html .

ANMERKUNG: Diese Proxy-Konfiguration wird zusätzlich zu einer beliebigen Proxy-Konfiguration für den Zugriff auf Ihr Repository für Abhängigkeiten verwendet.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow