我正在尝试让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上离线工作吗?
1条答案
按热度按时间pu82cl6c1#
TL;DR的名称
将gradle-bin zip文件放在
$GRADLE_USER_HOME/wrapper/dists/gradle-<some-version>-bin/<some-hash>/
中长版本
我终于设法破解了这个问题,即使在
coc-settings.json
中设置了两个属性:......它似乎仍然在尝试从
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命令开始工作!