it-swarm.com.ru

Как исправить Gradle, не распознающий Java 10 в Linux?

При работе с последней версией Gradle с Java 10 в Linux он не может определить номер версии Java как 10 в качестве допустимой версии Java. Как исправить эту проблему на машинах Linux? Записать подробности ошибки здесь

И вот полный отчет об ошибке (N.B. Запуск gradle --version или gradle -v также дает тот же результат:

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine Java version from '10'.

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

Правка: Вывод gradle --stacktrace

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine Java version from '10'.

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

* Exception is:
Java.lang.IllegalArgumentException: Could not determine Java version from '10'.
at org.gradle.api.JavaVersion.toVersion(JavaVersion.Java:70)
at org.gradle.api.JavaVersion.current(JavaVersion.Java:80)
at org.gradle.internal.jvm.UnsupportedJavaRuntimeException.assertUsingVersion(UnsupportedJavaRuntimeException.Java:29)
at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.Java:32)
at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.Java:24)
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.Java:33)
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.Java:22)
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.Java:210)
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.Java:174)
at org.gradle.launcher.Main.doAction(Main.Java:33)
at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.Java:45)
at Java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:62)
at Java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
at Java.base/Java.lang.reflect.Method.invoke(Method.Java:564)
at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.Java:60)
at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.Java:37)
at org.gradle.launcher.GradleMain.main(GradleMain.Java:23)

Вывод Java - версия

Java 10 2018-03-20
Java(TM) SE Runtime Environment 18.3 (build 10+46)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10+46, mixed mode)
8
Jagreet

Вам нужно обновить Gradle. Версия 4.5.1 и позже определенно поддерживают Java 10.

Если вы думаете, что у вас установлена ​​4.5.1 или более поздняя версия, но gradle -version по-прежнему не запускается, возможно, когда вы набираете gradle в командной строке, он по какой-то причине все еще запускает более старую версию.

Обычная вещь, которую нужно сделать - это псевдоним gradle к ./gradlew, так что в контексте проекта Gradle вы будете использовать оболочку Gradle, а не систему Gradle. Обычно это полезно, но в такой ситуации это имеет неприятные последствия. Вы должны быть в состоянии определить установленную систему Gradle с помощью which:

> which gradle
/usr/local/bin/gradle
> $(which gradle) -version

------------------------------------------------------------
Gradle 4.6
------------------------------------------------------------

Build time:   2018-02-28 13:36:36 UTC
Revision:     8fa6ce7945b640e6168488e4417f9bb96e4ab46c

Groovy:       2.4.12
Ant:          Apache Ant(TM) version 1.9.9 compiled on February 2 2017
JVM:          10.0.1 ("Oracle Corporation" 10.0.1+10)
OS:           Mac OS X 10.13.4 x86_64

(Я исключил некоторые предупреждения о нелегальном отражающем доступе, если вы их получите, не беспокойтесь о них.)

Если функция $(which gradle) -version по-прежнему не запускается, вам необходимо обновить системную версию. Но если это произойдет, чтобы обновить оболочку Gradle, вы можете отредактировать свой build.gradle -

task wrapper(type: Wrapper) {
  gradleVersion = '4.6'
}

- а затем используйте системный Gradle для повторного запуска задачи wrapper:

> $(which gradle) wrapper
Starting a Gradle Daemon (subsequent builds will be faster)

BUILD SUCCESSFUL in 7s
1 actionable task: 1 executed
> ./gradlew -version
Downloading https://services.gradle.org/distributions/gradle-4.6-bin.Zip
......................................................................

[etc.]

------------------------------------------------------------
Gradle 4.6
------------------------------------------------------------

Build time:   2018-02-28 13:36:36 UTC
Revision:     8fa6ce7945b640e6168488e4417f9bb96e4ab46c

Groovy:       2.4.12
Ant:          Apache Ant(TM) version 1.9.9 compiled on February 2 2017
JVM:          10.0.1 ("Oracle Corporation" 10.0.1+10)
OS:           Mac OS X 10.13.4 x86_64
5
David Moles

Воспользуйтесь помощью ppa и обновите версию Gradle. Ubuntu 17 поставляется с Gradle Sudo apt install gradle установит версию Gradle по умолчанию. 

для обновления до Java 10 необходимо выполнить приведенную ниже команду.

Sudo add-apt-repository ppa:cwchien/gradle
Sudo apt-get update
Sudo apt upgrade gradle
2
Kumar Abhishek

Ребята, я нашел проблему в этом случае. Я установил gradle из официальных репозиториев Debian, которые содержали устаревшую версию gradle, которая не поддерживала Java 10. При загрузке и установке Gradle с официального сайта и софт-связыванием его с/usr/bin/gradle, он работал просто отлично. Поэтому, по сути, проблема заключалась в установке gradle из репозиториев Debian, которые в настоящее время устарели.

0
Jagreet