eclipse 无法使coc-java与gradle脱机工作

tquggr8v  于 2022-11-04  发布在  Eclipse
关注(0)|答案(1)|浏览(162)

我正在尝试让coc-java在一个无法访问互联网的环境中工作。我生成了一个可以访问互联网的安装程序,并将其传输到离线环境,但当我打开一个java文件并执行:CocCommand workspace.showOutput并选择coc-java时,我得到了一个以Cannot download published Gradle versions. at org.eclipse.buildship.core.internal.util.gradle.PublishedGradleVersions.downloadVersionInformation(PublishedGradleVersions.java:165). I. Caused by: java.net.UnknownHostException: services.gradle.org开头的堆栈跟踪。我已经安装了gradle 7.4.2,并且在~/.vim/coc-settings.json中具有以下设置:

"java.enabled" : true,                                                                                                                                                                                                                                                              
      "java.autobuild.enabled": true,                                                                                                                                                                                                                                                     
      "java.codeGeneration.generateComments": true,                                                                                                                                                                                                                                       
      "java.implementationsCodeLens.enabled": true,                                                                                                                                                                                                                                       
      "java.referencesCodeLens.enabled": true,                                                                                                                                                                                                                                            
      "java.completion.enabled" : true,                                                                                                                                                                                                                                                   
      "java.foldingRange.enabled" : true,                                                                                                                                                                                                                                                 
      "java.format.comments.enabled" : true,                                                                                                                                                                                                                                              
      "java.format.enabled" : true,                                                                                                                                                                                                                                                       
      "java.format.onType.enabled" : true,                                                                                                                                                                                                                                                
      "java.home" : "/usr/java/jdk-11.0.2",                                                                                                                                                                                                                                               
      "java.import.gradle.enabled": true,                                                                                                                                                                                                                                                 
      "java.import.gradle.offline.enabled": true,
      "java.import.gradle.home": "/home/me/.opt/gradle/gradle-7.4.2",                                                                                                                                                                                                                                       
      "java.import.gradle.user.home": "/home/me/.gradle",                                                                                                                                                                                                                         
      "java.import.gradle.version": "7.4.2",                                                                                                                                                                                                                                              
      "java.import.gradle.wrapper.enabled": false,                                                                                                                                                                                                                                        
      "java.import.maven.enabled": true,                                                                                                                                                                                                                                                  
      "java.progressReports.enabled" : false,                                                                                                                                                                                                                                             
      "java.trace.server": "verbose",                                                                                                                                                                                                                                                                                 
      "java.configuration.runtimes": [                                                                                                                                                                                                                                                    
        {                                                                                                                                                                                                                                                                                 
          "name": "JavaSE-11",                                                                                                                                                                                                                                                            
          "path": "/usr/java/jdk-11.0.2",                                                                                                                                                                                                                                                 
          "default": true                                                                                                                                                                                                                                                                 
        }                                                                                                                                                                                                                                                                                 
      ]

coc-java文档是这样描述java.import.gradle.home的:如果Gradle Package 器缺失或被禁用,并且未指定'java.import.gradle.version',则从指定的本地安装目录或GRADLE_HOME使用Gradle。
我也尝试过删除java.import.gradle.version,但还是出现了同样的问题。
考虑到stacktrace提到了eclipse buildship,我试着在谷歌上搜索如何更改eclipse/buildship设置,但还没有找到如何配置离线设置,如果这是可能的话。有人能让coc-java在gradle上离线工作吗?

pu82cl6c

pu82cl6c1#

TL;DR的名称

将gradle-bin zip文件放在$GRADLE_USER_HOME/wrapper/dists/gradle-<some-version>-bin/<some-hash>/

长版本

我终于设法破解了这个问题,即使在coc-settings.json中设置了两个属性:

"java.import.gradle.offline.enabled": true,
    "java.import.gradle.wrapper.enabled": false,

......它似乎仍然在尝试从services.gradle.org获取gradle-7.1.1。在查看了$GRADLE_USER_HOME之后,我注意到了一个wrapper目录,尽管我从未使用过gradle-wrapper,所以我深入研究了一下。经过大量的尝试,我通过将一个已有的gradle-7.4.2-bin.zip文件放在$GRADLE_USER_HOME/wrapper/dists/gradle-7.1.1-bin/f29rtwfnc96ub43tt7p47zsru/中,成功地让它工作起来。我不确定该哈希值的意义,也不知道它为什么会指向gradle的7.1.1版本,但是在把zip文件放在那里并打开一个java文件之后,它继续在该hash文件夹下创建gradle-7.4.2文件夹,其中包含了所需的所有内容,并且coc命令开始工作!

相关问题