Wie installiere ich Gradle und Gradlew?

Wie installiere ich Gradle und Gradlew?

Ich habe ein Problem bei der Installation von Gradlew ... Ich kann den Gradle-Befehl verwenden, indem ich einfach „gradle“ in das Terminal eingebe, aber „gradlew“ tut nichts. Ich habe Gradle installiert mit

sudo apt install gradle

Und die Installation wurde erfolgreich durchgeführt. Ich muss „sudo gradle“ und nicht „gradle“ verwenden, da dies angezeigt wird, wenn ich sudo nicht verwende.

icebunny08@D3CRYPT3D:~$ gradle
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.gradle.internal.reflect.JavaMethod (file:/usr/share/gradle/lib/gradle-base-services-3.4.1.jar) to method java.lang.ClassLoader.getPackages()
WARNING: Please consider reporting this to the maintainers of org.gradle.internal.reflect.JavaMethod
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Starting a Gradle Daemon (subsequent builds will be faster)
:help

Welcome to Gradle 3.4.1.

To run a build, run gradle <task> ...

To see a list of available tasks, run gradle tasks

To see a list of command-line options, run gradle --help

To see more detail about a task, run gradle help --task <task>

BUILD SUCCESSFUL

Total time: 5.017 secs

Meine Probleme sind, ob ich Gradle richtig installiert habe und warum ich den Befehl „gradlew“ nicht verwenden kann. Dies ist die Ausgabe, wenn ich „gradlew“ verwende.

icebunny08@D3CRYPT3D:~$ gradlew

Command 'gradlew' not found, did you mean:

  command 'gradle' from deb gradle

Try: sudo apt install <deb name>

Antwort1

Die Warnungen, die Sie beim Ausführen des Gradle-Befehls erhalten, sind auf ein Problem mit JDK 9 oder höher zurückzuführen, wie beschriebenHier.

Wenn diese Warnungen für Sie ein Problem darstellen, können Sie sie mit dem beschriebenen Workaround verschwinden lassen:

Sie können dem Java-Bootstrap-Skript oder JAVA_OPTS die folgenden Argumente hinzufügen, um diese Warnung zu unterdrücken:

--add-opens=java.base/java.lang=ALLE-UNBENANNT --add-opens=java.base/java.lang.invoke=ALLE-UNBENANNT


Nun zu Gradlew.

Gradlew ist ein Wrapper um Gradle. Es ist an ein Projekt gebunden, nicht an Ihre Workstation. Mit anderen Worten: Jedes Gradle-Projekt, das Sie entwickeln, könnte einen Gradle-Wrapper enthalten. Der Zweck von Gradlew besteht darin, das Projekt portierbar (d. h. Entwickler müssen Gradle nicht auf ihrer Workstation installieren) und zuverlässig (d. h. dieselbe Gradle-Version für alle) zu machen. Das Wrapper-Skript lädt die angegebene Gradle-Version für Ihr Projekt herunter und führt sie dann aus. Dies alles wird in beschriebenderen Dokumentation.

Was Sie in Ihrem Fall getan haben, ist die globale Installation von Gradle auf Ihrer Workstation. Die Gradle-Installation wird nicht mit Gradlew geliefert, da Gradlew wie beschrieben zu jedem Gradle-Projekt Ihrer Wahl hinzugefügt werden muss.Hier. Sie müssen lediglich den folgenden Befehl in Ihrem Projekt ausführen:

gradle wrapper

Dadurch wird das Wrapper-Skript für Ihr Gradle-Projekt erstellt. Natürlich muss Gradle installiert sein, um diesen Befehl ausführen zu können (Sie haben es bereits installiert), aber wenn Sie das Ergebnis festschreiben und mit anderen Entwicklern teilen, können diese das Gradlew-Skript verwenden, ohne Gradle zu installieren.

In Ihrem Fall stehen Ihnen zwei Möglichkeiten zur Verfügung:

  • Führen Sie Gradle-Befehle in Ihrem Projekt aus, wie gradle clean. Sie können dies tun, weil Sie Gradle manuell global installiert haben
  • Führen Sie Gradlew-Befehle in Ihrem Projekt aus, wie gradlew clean. Sie können dies tun, weil Sie das Wrapper-Skript gradle wrapperzunächst mit erstellt haben.

Beide sollten das gleiche Ergebnis liefern, wenn die Gradle-Version dieselbe ist.

verwandte Informationen