eclipse 无法使用 Gradle 发行版获取“EclipseProject”类型的模型

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/39144298/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-09 05:39:41  来源:igfitidea点击:

Could not fetch model of type 'EclipseProject' using Gradle distribution

eclipsegradleeclipse-plugin

提问by nucandrei

I get the following exception while importing a Gradle project in Eclipse Neon (Buildship 1.0.18 / Gradle IDE 3.8.1 ):

在 Eclipse Neon (Buildship 1.0.18 / Gradle IDE 3.8.1 ) 中导入 Gradle 项目时出现以下异常:

org.gradle.tooling.GradleConnectionException: Could not fetch model of type 'EclipseProject' using Gradle distribution 'https://services.gradle.org/distributions/gradle-3.0-bin.zip'.
    at org.gradle.tooling.internal.consumer.ExceptionTransformer.transform(ExceptionTransformer.java:55)
    at org.gradle.tooling.internal.consumer.ExceptionTransformer.transform(ExceptionTransformer.java:29)
    at org.gradle.tooling.internal.consumer.ResultHandlerAdapter.onFailure(ResultHandlerAdapter.java:41)
    at org.gradle.tooling.internal.consumer.async.DefaultAsyncConsumerActionExecutor.run(DefaultAsyncConsumerActionExecutor.java:57)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
    at org.gradle.internal.concurrent.StoppableExecutorImpl.run(StoppableExecutorImpl.java:40)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
    at org.gradle.tooling.internal.consumer.BlockingResultHandler.getResult(BlockingResultHandler.java:46)
    at org.gradle.tooling.internal.consumer.DefaultModelBuilder.get(DefaultModelBuilder.java:51)
    at com.gradleware.tooling.toolingclient.internal.DefaultToolingClient.executeAndWait(DefaultToolingClient.java:106)
    at com.gradleware.tooling.toolingclient.internal.DefaultModelRequest.executeAndWait(DefaultModelRequest.java:79)
    at com.gradleware.tooling.toolingmodel.repository.internal.BaseModelRepository.get(BaseModelRepository.java:95)
    at com.gradleware.tooling.toolingmodel.repository.internal.BaseModelRepository.executeAndWait(BaseModelRepository.java:163)
    at com.gradleware.tooling.toolingmodel.repository.internal.BaseModelRepository.access
sourceSets {
    main {
        java {
            srcDirs = ['/']
            exclude 'test/**'
        }
    }
}
0(BaseModelRepository.java:41) at com.gradleware.tooling.toolingmodel.repository.internal.BaseModelRepository.call(BaseModelRepository.java:121) at com.google.common.cache.LocalCache$LocalManualCache.load(LocalCache.java:4724) at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3522) at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2315) at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2278) at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2193) at com.google.common.cache.LocalCache.get(LocalCache.java:3932) at com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4721) at com.gradleware.tooling.toolingmodel.repository.internal.BaseModelRepository.getFromCache(BaseModelRepository.java:138) at com.gradleware.tooling.toolingmodel.repository.internal.BaseModelRepository.executeRequest(BaseModelRepository.java:117) at com.gradleware.tooling.toolingmodel.repository.internal.BaseModelRepository.executeRequest(BaseModelRepository.java:88) at com.gradleware.tooling.toolingmodel.repository.internal.DefaultSingleBuildModelRepository.fetchEclipseGradleBuild(DefaultSingleBuildModelRepository.java:185) at org.eclipse.buildship.core.workspace.internal.DefaultModelProvider.fetchEclipseGradleBuild(DefaultModelProvider.java:53) at org.eclipse.buildship.core.workspace.internal.SynchronizeGradleBuildsJob.synchronizeBuild(SynchronizeGradleBuildsJob.java:77) at org.eclipse.buildship.core.workspace.internal.SynchronizeGradleBuildsJob.runToolingApiJob(SynchronizeGradleBuildsJob.java:69) at org.eclipse.buildship.core.util.progress.ToolingApiJob.run(ToolingApiJob.java:73) at org.eclipse.buildship.core.util.progress.ToolingApiInvoker.invoke(ToolingApiInvoker.java:61) at org.eclipse.buildship.core.util.progress.ToolingApiJob.run(ToolingApiJob.java:70) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) Caused by: java.lang.IllegalArgumentException at com.google.common.base.Preconditions.checkArgument(Preconditions.java:111) at org.gradle.plugins.ide.eclipse.model.Link.<init>(Link.java:36) at org.gradle.plugins.ide.eclipse.internal.LinkedResourcesCreator.links(LinkedResourcesCreator.java:42) at org.gradle.plugins.ide.eclipse.EclipsePlugin.call(EclipsePlugin.java:182) at org.gradle.plugins.ide.eclipse.EclipsePlugin.call(EclipsePlugin.java:179) at org.gradle.util.GUtil.uncheckedCall(GUtil.java:401) at org.gradle.api.internal.ConventionAwareHelper.getValue(ConventionAwareHelper.java:84) at org.gradle.api.internal.ConventionAwareHelper$MappedPropertyImpl.getValue(ConventionAwareHelper.java:133) at org.gradle.api.internal.ConventionAwareHelper.getConventionValue(ConventionAwareHelper.java:111) at org.gradle.plugins.ide.eclipse.model.EclipseProject_Decorated.getLinkedResources(Unknown Source) at org.gradle.plugins.ide.internal.tooling.EclipseModelBuilder.populate(EclipseModelBuilder.java:217) at org.gradle.plugins.ide.internal.tooling.EclipseModelBuilder.buildAll(EclipseModelBuilder.java:113) at org.gradle.plugins.ide.internal.tooling.EclipseModelBuilder.buildAll(EclipseModelBuilder.java:67) at org.gradle.tooling.internal.provider.runner.BuildModelActionRunner.createModelResult(BuildModelActionRunner.java:76) at org.gradle.tooling.internal.provider.runner.BuildModelActionRunner.run(BuildModelActionRunner.java:67) at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35) at org.gradle.tooling.internal.provider.runner.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:58) at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:43) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:28) at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:82) at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:49) at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:59) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:49) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) at org.gradle.launcher.daemon.server.exec.ForwardClientInput.call(ForwardClientInput.java:74) at org.gradle.launcher.daemon.server.exec.ForwardClientInput.call(ForwardClientInput.java:72) at org.gradle.util.Swapper.swap(Swapper.java:38) at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) at org.gradle.launcher.daemon.server.exec.HintGCAfterBuild.execute(HintGCAfterBuild.java:44) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy.run(StartBuildOrRespondWithBusy.java:50) at org.gradle.launcher.daemon.server.DaemonStateCoordinator.run(DaemonStateCoordinator.java:240) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54) at org.gradle.internal.concurrent.StoppableExecutorImpl.run(StoppableExecutorImpl.java:40) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)

I found almost the same exception here: Could not fetch model of type 'EclipseProject' using Gradlebut the solution was to use the latest Gradle version (currently 3.0)

我在这里发现了几乎相同的异常:无法使用 Gradle 获取“EclipseProject”类型的模型,但解决方案是使用最新的 Gradle 版本(当前为 3.0)

The same scenario was reported on https://discuss.gradle.org/t/could-not-fetch-model-error-when-converting-project-to-gradle-using-buildship/19022but with no answers so far.

https://discuss.gradle.org/t/could-not-fetch-model-error-when-converting-project-to-gradle-using-buildship/19022 上报告了相同的情况,但到目前为止还没有答案。

The reported resource is available for download: https://services.gradle.org/distributions/gradle-3.0-bin.zip

报告资源可供下载:https: //services.gradle.org/distributions/gradle-3.0-bin.zip

Does anybody have workarounds for this problem? Thank you.

有人有解决此问题的方法吗?谢谢你。

采纳答案by nucandrei

Because the project did not respect classic Maven structure, I used the following property in build.gradle

因为项目不尊重经典的Maven结构,我在build.gradle中使用了以下属性

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14-bin.zip.

The correct srcDirs should have been ['./']

正确的 srcDirs 应该是 ['./']

For those who cannot import Gradle projects in Eclipse, please check for this kind of misconfiguration.

对于那些无法在 Eclipse 中导入 Gradle 项目的人,请检查此类错误配置。

回答by Emmanuel Romulus

The problem comes from an old gradle wrapper that your project may have used.

问题来自您的项目可能使用过的旧 gradle 包装器。

In your gradle project, gradle->wrapper->gradle-wrapper.propertiesmake the appropriate changes:

在您的 gradle 项目中,gradle->wrapper->gradle-wrapper.properties进行适当的更改:

##代码##

Or recreate your gradle project after you have updated your gradle on your machine.

或者在您的机器上更新您的 gradle 后重新创建您的 gradle 项目。

回答by geneSummons

As illustrated in the accepted answer, this "could not fetch model of type..." error can be caused by a syntax error in the build.gradle file. If so, the error has nothing to do with the Gradle or Eclipse version you are running. See this question

如已接受的答案所示,此“无法获取类型的模型...”错误可能是由 build.gradle 文件中的语法错误引起的。如果是这样,则该错误与您运行的 Gradle 或 Eclipse 版本无关。看到这个问题