Zoeken…


Gradle Wrapper en Git

Zoals in de inleiding besproken, werkt de gradle wrapper-functionaliteit omdat een pot wordt gedownload naar het project om te worden gebruikt wanneer de gradlew opdracht wordt uitgevoerd. Dit kan echter niet worden gradlew en na de volgende keer dat het project wordt uitgecheckt, kan gradlew niet worden uitgevoerd met de fout:

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

Dit komt omdat uw .gitignore waarschijnlijk *jar voor Java-projecten. Toen de gradle wrapper werd geïnitialiseerd, wordt deze naar het bestand gradle/wrapper/gradle-wrapper.jar . Je moet het dus toevoegen aan de git-index en het vastleggen. Doe dit met:

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

Met het -f zijn om het te forceren.

Gradle Wrapper introductie

Gradle heeft de mogelijkheid om een wrapper toe te voegen aan projecten. Deze wrapper vermindert de noodzaak voor alle gebruikers of systemen voor continue integratie om Gradle te installeren. Het voorkomt ook versieproblemen waarbij er enige incompatibiliteit is tussen de versie die het project gebruikt en die welke gebruikers hebben geïnstalleerd. Het doet dit door lokaal een versie van gradle in het project te installeren.

Gebruikers van het project voeren eenvoudig uit:

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

Om een project in te stellen om een wrapper te gebruiken, ontwikkelaars:

  1. uitvoeren:
gradle wrapper [--gradle-version 2.0]

Waar --gradle-version X optioneel is en indien niet verstrekt (of de wrapper-taak is niet inbegrepen, zoals hieronder getoond), is de gebruikte versie de versie van gradle die wordt gebruikt.

  1. Om het project te dwingen een specifieke versie te gebruiken, voegt u het volgende toe aan de build.gradle :
task wrapper(type: Wrapper) {
    gradleVersion = '2.0'
}

Wanneer de opdracht gradle wrapper wordt uitgevoerd, worden de bestanden gemaakt:

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

De officiële documentatie over deze functie is te vinden op https://docs.gradle.org/current/userguide/gradle_wrapper.html .

Gebruik lokaal aangeboden Gradle in de Gradle Wrapper

Als u een lokale kopie van de Gradle wilt behouden en de Wrapper deze in de builds wilt laten gebruiken, kunt u de distributionUrl die naar uw kopie verwijst in de wrapper taak:

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

na het uitvoeren van gradle wrapper , wordt het shellscript gradlew gemaakt en wordt de gradle/wrapper/gradle-wrapper.properties geconfigureerd om de opgegeven URL te gebruiken om de gradle/wrapper/gradle-wrapper.properties te downloaden.

De Gradle Wrapper gebruiken achter een proxy

De eerste keer dat een gebruiker de gradlew een project gradlew , moet men zich realiseren dat het twee belangrijke dingen zal doen:

  1. Controleer of de versie van het verloop dat door de wrapper wordt gebruikt al in ~ / .gradle / wrapper / dists staat
  2. Zo niet, download dan het archief van de versie van internet

Als u zich in een omgeving bevindt die vereist dat al het externe verkeer door een proxy gaat, zal stap twee mislukken (tenzij het een transparante proxyomgeving is). Daarom moet u ervoor zorgen dat u de JVM- proxyparameters hebt ingesteld.

Als u bijvoorbeeld een standaard proxy-instelling zonder verificatie hebt, stelt u eenvoudig de omgevingsvariabele JAVA_OPTS of GRADLE_OPTS met:

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

Dus een voltooid voorbeeld op Windows zou zijn:

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

Als uw omgeving echter ook authenticatie vereist, wilt u ook uw andere opties bekijken op https://docs.oracle.com/javase/8/docs/api/java/net/doc-files/net-properties. html .

OPMERKING: deze proxyconfiguratie is een aanvulling op elke proxyconfiguratie voor uw toegang tot de afhankelijkheidsrepository.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow