Gradle Konnte nicht erstellt werden service-Typ InitScriptHandler mit BuildScopeServices.createInitScriptHandler()
Ich verwendet gradle build-Befehl in Centos 7 Klemme, und ich hab Ausgang:
FAILURE: Build failed with an exception.
* What went wrong:
Could not create service of type InitScriptHandler using BuildScopeServices.createInitScriptHandler().
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
- Haben Sie die entsprechenden Berechtigungen zum ausführen des Befehls?
- Ich glaube, Sie haben Recht, das problem ist mit den rechten, da in der root-Benutzer gradle richtig funktioniert, ich versuche eingestellt 777 Berechtigungen zu gradle Ordner mit dem Befehl chmod -R 777 ./gradle-2.4 ,aber Fehler immer noch auftreten. Gradle Ordner habe ich entpackt in den Benutzer-home-Verzeichnis, mit dem bekomme ich die Fehlermeldung wie oben beschrieben.
- Plonking
sudo
vor dem Befehl, den ich eingegeben behoben. Die Fehlermeldung könnte ein bisschen mehr in diesem Zusammenhang hilfreich sein. - Arbeitete für mich, wenn ich getötet gradle daemon.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie, Ihren
GRADLE_USER_HOME
Variablen auf einen Ordner, in dem Sie einen gültigen Zugang. Dann ist dieser Fehler Weg gehen wird.Ex: ich Stand vor dem gleichen Problem heute, während ich lief
gradle clean
Befehl auf eine neue slave-Maschine.Meinem Gradle-version war 2.3.
Mit --stacktrace, kam ich zu wissen, es war zu schaffen versucht
.gradle
Ordner für die Speicherung von Gradle ist der cache-Daten (während ich aufgerufen Gradle clean-Aufgabe ausgeführt, die auf dem slave) und es wurde versucht, erstellen Sie diesen Ordner unter /einige/Ort/wo/gradle/existiert ODER irgendein /Pfad/Verzeichnis/xxx/yyy, wo der Benutzer die ausgeführt wurde, Gradle auf der slave-Maschine nicht über einen gültigen Zugriff auf schreiben (Ordner erstellen/Dateien).d.h. die Benutzer, die ich verwendet, um die Verbindung von Jenkins Maschine der slave nicht über Schreibzugriff auf
touch
/mkdir
alles in der default-location (wo Gradle dachte, OK sollte ich schaffen .gradle Ordner hier).Um es zu beheben, ich habe das oben
GRADLE_USER_HOME
variable im slave-UMWELT-Variablen-Abschnitt. Jetzt, da ich einen gültigen Zugriff in mein home-Verzeichnis war ich OK.Einstellung:
ist das Problem behoben.
Können Sie ihn ~/.gradle als gut. Aber ich habe es unter einem benutzerdefinierten Ordner in meinem
~
home-Verzeichnis (gradle_2_3_cache). Dies wird mir helfen, dass ich einem anderen Sklaven ausführen auf dem gleichen Slave-Maschine, sondern mit verschiedenen Gradle-version für ex 2.5 etc-version und wenn ich die.gradle
cache für 2,3 und 2,5/x-version in einen separaten Ordner.Für mich, zu töten den Gradle daemon (
gradle --stop
) wirklich geholfen und das Problem beseitigt haben.Ist das Problem gelöst, einfach per "sudo" und Ihnen den Zugang zu gradle um einen Ordner zu erstellen und schreiben cache. Verwendung:
Wenn Sie mit wrapper gradlew im root-Verzeichnis erstellen .gradle_new
und gradlew run mit Argumenten:
Ich hatte das gleiche problem.
Bei mir funktionierte es, nachdem ich ausschließen .gradle Ordner, wenn Sie nicht löschen, umbenennen versuchen.
Wenn Sie aktualisiert haben Ihre JDK-version und Sie haben eine Gradle-wrapper in Ihr Projekt, möchten Sie vielleicht überprüfen Sie die wrapper-version unterstützt Sie in der neuen JDK. Wenn nicht, sollten Sie entfernen wrapper-bezogene Dateien aus dem Projekt (
gradlew
,gradlew.bat
undgradle/wrapper/*
) und re-generieren Sie mit dem Gradle-CLI, etwa so:z.B.
gradle wrapper --gradle-version 4.10.2
Dies ist natürlich davon ausgegangen, dass die Gradle-installation ist up-to-date. Wenn nicht, werden Sie wollen, Sie zu aktualisieren, die ersten.
Einem Neustart des Gerätes behebt das Problem.
Müssen Sie Nur Führen Sie es unter den super user (sudo ....) es funktioniert für mich
Dies ist eine Erlaubnis.
tun
gradle wrapper --stacktrace
Sie sollten so etwas wie dieses
Fehler beim erstellen des übergeordneten Verzeichnis '/home/cloud_user/my-project/gradle' beim erstellen von Verzeichnis '/home/cloud_user/my-project/gradle/wrapper'
den Benutzer, cloud_user, hat keine Berechtigung für das Verzeichnis
machen cloud_user Besitzer des Ordners
sudo chown -R cloud_user:cloud_user /home/cloud_user/my-project/
Für zukünftige Referenz.
Ich hatte das gleiche problem, das Problem war, dass die antivirus blockiert wurde OpenJdk Plattform binäre und java.exe, welcher verhinderte, dass android studio kann die Dateien Bearbeiten,
Lief ich in diese Ausnahme, wenn Sie versuchen zu bauen, ein Projekt, das montiert war, als read-only-Dateisystem in einer VM. Das Projekt eigene gradle-cache, so ändern
GRADLE_USER_HOME
hat nicht funktioniert. Ich hatte zum ändern der Dateisystem Lesen/schreiben.War dies für mich zu tun mit den Java-Versionen. Ich habe Java 10 installiert und als Standard-Java auf meinem system. Festlegen einer Umgebungsvariable JAVA_HOME zeigt auf die Java 8 war ausreichend für das Projekt (graphql-spring-boot) zu bauen.
Ich habe den gleichen Fehler, hab es loswerden, indem Sie die richtige version von Java /JDK. Ich habe versucht, bauen eine Java-8-Projekt mit Java-11-JDK. Überprüfen Sie, welche version von Java JDK Sie verwenden.
Projekte zu entwickeln, die mit verschiedenen Java-Versionen parallel ich nutze jetzt jEnv für die Verwaltung der verschiedenen JDK-Versionen: http://www.jenv.be/
Wenn Sie laufen Docker-in-Docker und montieren Sie das Projekt-Verzeichnis von docker-host direkt an docker-container:
-v ${PWD}:/path_to_project -w /path_to_project
die Besitzer sind anders und docker-container Benutzer (entweder gradle oder root) nicht überschreiben/löschen
./buildSrc/build
oder./build/
Eines der Updates - kopieren Sie die Quellen im inneren des Behälters, um das temporäre Verzeichnis und bauen es.
Smth like this (first montiert
project
, aber dann kopiertproject-copy
zu "entkoppeln" mit dem host-system real-Dateien, und führen Sie den Aufbau in der Kopie):