java.lang.NoSuchMethodException: jdk.internal.module.ModuleReferenceImpl.descriptor()

Я получаю сообщение об ошибке java.lang.NoSuchMethodException: jdk.internal.module.ModuleReferenceImpl.descriptor() при выполнении mvn clean intall в моем intellij IDE.

Это начало происходить, когда я понизил свой jdk-11.0.2 до jdk1.8.0_191.

вот полная трассировка стека:

   java.lang.NoSuchMethodException: jdk.internal.module.ModuleReferenceImpl.descriptor()
    at java.base/java.lang.Class.getDeclaredMethod(Class.java:2476)
    at org.apache.maven.plugins.dependency.utils.DependencyStatusSets.getModuleDescriptor(DependencyStatusSets.java:272)
    at org.apache.maven.plugins.dependency.utils.DependencyStatusSets.buildArtifactListOutput(DependencyStatusSets.java:227)
    at org.apache.maven.plugins.dependency.utils.DependencyStatusSets.getOutput(DependencyStatusSets.java:165)
    at org.apache.maven.plugins.dependency.resolvers.ResolveDependenciesMojo.doExecute(ResolveDependenciesMojo.java:90)
    at org.apache.maven.plugins.dependency.AbstractDependencyMojo.execute(AbstractDependencyMojo.java:143)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:956)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:192)
    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:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)

и мои mvn version данные здесь:

Admins-MacBook-Pro:carot jangbahadurpatel$ mvn --version
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T00:11:47+05:30)
Maven home: /usr/local/Cellar/maven/3.6.0/libexec
Java version: 11.0.2, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home
Default locale: en_GB, platform encoding: UTF-8
OS name: "mac os x", version: "10.14.1", arch: "x86_64", family: "mac"

Что сделать, чтобы разобраться?


person Jabongg    schedule 17.01.2019    source источник
comment
Пожалуйста, поделитесь точным mvn -version и этапом, на котором это не удается. Кроме того, ваши конфигурации maven помогут воспроизвести это.   -  person Naman    schedule 17.01.2019
comment
@nullpointer Я обновил свой вопрос версией mvn.   -  person Jabongg    schedule 17.01.2019
comment
Похоже, ваш maven настроен на Java11, а вместо этого вы пытаетесь скомпилировать код с помощью Java-8. Детали конфигураций в pom.xml могли бы прояснить, я полагаю.   -  person Naman    schedule 17.01.2019
comment
Я не вижу конфигурации, связанной с java, в моем pom.xml. Это все джерси, spring-web и другие зависимости, но не конфигурация, связанная с java или jdk.   -  person Jabongg    schedule 17.01.2019
comment
Тогда некоторые значения по умолчанию будут использоваться, просто просмотрите вывод maven на своей консоли. Он отображает версии используемых плагинов. Возможно, вы найдете там несовместимую версию.   -  person Naman    schedule 17.01.2019
comment
должен ли я удалить jdk-11 и jdk-8 и повторить попытку с jdk-8?   -  person Jabongg    schedule 17.01.2019
comment
Давайте продолжим обсуждение в чате.   -  person Jabongg    schedule 17.01.2019
comment
Не совсем так, вы можете настроить свой mavenrc для использования JDK8 для вас или убедиться, что в вашей конфигурации maven присутствует правильный toolchains.xml. maven.apache.org/guides/mini/guide-using-toolchains. html   -  person Naman    schedule 17.01.2019
comment
пример mavenrc - stackoverflow.com/questions/46118716/   -  person Naman    schedule 17.01.2019


Ответы (1)


Что это начало происходить, когда я понизил свой jdk-11.0.2 до jdk1.8.0_191.

Это + java.lang.NoSuchMethodException на самом деле довольно подозрительно. Класс ModuleReferenceImpl является расширенным классом ModuleReference, который был доступен начиная с Java 9.

person maio290    schedule 17.01.2019
comment
Но странно видеть, что maven использует getDeclaredMethod в классе реализации для доступа к методу, определенному интерфейсом. Очень похоже, что вызывающая сторона знает, что в этой версии интерфейса не существует, тогда как класс ModuleReferenceImpl, очевидно, существует, поскольку JRE жалуется только на отсутствие метода в этом классе. - person Holger; 17.01.2019