2017-01-30 1 views
2

Je suis en Gradle 3.2.1 sur Mac OS X 10.12.1 installé avec brew install gradle, n'a pas mis toutes les variables d'env moi-même, etc., en essayant d'utiliser Java 9 EA:Gradle ignore le démon ignore drapeau

gradle build -Dorg.gradle.java.home=~/jdk-9.jdk/Contents/Home 

Mais La génération échoue avec

Échec: Échec de la génération avec une exception.

  • Qu'est-ce qui n'a pas fonctionné: Impossible de démarrer le processus démon. Ce problème peut être dû à une configuration incorrecte du démon. Par exemple, une option jvm non reconnue est utilisée.

D'après ce que je sais échoue parce que le démon tente d'utiliser l'option JVM MaxPermSize (qui est pas prise en charge Java 8+ mais en Java 8, il est seulement un avertissement).

J'ai donc essayé de désactiver le démon:

mkdir -p ~/.gradle && echo "org.gradle.daemon=false" >> ~/.gradle/gradle.properties 

Mais gradle build essaie toujours de démarrer un démon ... Je retiré ~/.gradle et .gradle dans le répertoire du projet. D'autres idées?

$ gradle build -Dorg.gradle.daemon=false -Dorg.gradle.java.home=/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home 
To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: https://docs.gradle.org/3.2.1/userguide/gradle_daemon.html. 

FAILURE: Build failed with an exception. 

* What went wrong: 
Unable to start the daemon process. 
This problem might be caused by incorrect configuration of the daemon. 
For example, an unrecognized jvm option is used. 
Please refer to the user guide chapter on the daemon at https://docs.gradle.org/3.2.1/userguide/gradle_daemon.html 
Please read the following process output to find out more: 
----------------------- 

FAILURE: Build failed with an exception. 

* What went wrong: 
java.lang.ExceptionInInitializerError (no error message) 

* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 


* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 
> Starting Daemon% 
+0

La variable d'environnement GRADLE_OPTS est-elle définie? Aussi GRADLE_USER_HOME variable emplacement des effets où gradle cherche le fichier de propriétés ...? https://docs.gradle.org/current/userguide/gradle_daemon.html – Adam

+0

@Adam aucune de ces variables sont définies –

Répondre

0

Ok alors je me suis dehors, depuis que je suis en mon build comme ceci:

gradle build -Dorg.gradle.java.home=~/jdk-9.jdk/Contents/Home 

Gradle doit frayer un nouveau thread d'utiliser une autre version de Java que celui pointé par JAVA_HOME. Ceci est fait en engendrant un thread démon (même en dépit de l'option false) avec cette version de Java et échoue. La même chose se produirait si je transmettais des arguments JVM à la construction apparemment. La solution consiste à définir à la place JAVA_HOME dans le terminal export JAVA_HOME=~/jdk-9.jdk/Contents/Home et à exécuter simplement gradle build.

Cela ne fonctionne toujours pas car la dernière version de Java9 a brisé la réflexion de Gradle, mais c'est une autre histoire.

0

Je poste ceci ici parce que c'est trop gros d'un commentaire (mais c'est sûrement pas une réponse).

Si vous exécutez votre script avec --debug, vous verrez l'erreur sous-jacente. Je cours ceci directement via java-9 sans définir le btw JAVA_HOME.

J'ai eu le même problème quelques jdk-9 construit en arrière et avec abordé:

set _JAVA_OPTIONS "-Dsun.reflect.debugModuleAccessChecks=true 
      --add-opens=java.base/java.lang=ALL-UNNAMED 
      --add-opens=java.base/java.util=ALL-UNNAMED 
      --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 
      --add-opens=java.base/java.io=ALL-UNNAMED 
      --add-opens=java.base/java.util.concurrent=ALL-UNNAMED 
      --add-opens=java.base/java.text=ALL-UNNAMED" 

mis au lieu de exportation parce que je me sers du poisson, mais devrait fonctionner pour bash même façon.

Il est intéressant cela ne fonctionne pas encore avec la construction 153 avec ceci:

Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.util.Map java.util.Collections$UnmodifiableMap.m accessible: module java.base does not "opens java.util" to unnamed module @67080771 

Mais cela est spécifié dans les _JAVA_OPTIONS.Cela peut être une régression sur la version 153.

+0

Hey @Eugene, mon problème original a été gradle à partir d'un thread démon, même si je ne pas spécifié (ce qui était se plaindre d'un paramètre JVM redondant) mais comme il s'avère que si vous passez 'org.gradle.java.home' ou' org.gradle.jvmargs' '' -D', gradle fonctionne de cette façon et c'est à prévoir. Votre réponse semble aider à courir Gradle + Java9, ce qui est un peu un problème différent que je suis maintenant :-) –

+0

@MateuszDymczyk ouais .. Je sais. Je * roi de * prédit que vous finirez par frapper le même problème que moi – Eugene

+0

@MateuszDymczyk pouvez-vous toujours exécuter votre appel de gradle btw? Parce que je ne peux pas avec les paramètres que j'ai montré dans ma réponse/commentaire – Eugene