我正在使用VS Code编写Java,并安装了各种Red Hat和Microsoft扩展。
我有两个项目,A和B.我将项目A的快照(使用Gradle)发布到Nexus存储库。项目B(也使用Gradle)引用了该Nexus存储库中项目A的当前快照。
如果我使用命令行发布项目A,然后编译项目B,一切都编译好。但是当我返回到Visual Studio Code时,我添加到项目A的新方法未在Intellisense中显示。它们显示为错误。
我觉得VS Code必须在某处缓存其依赖关系的视图,如果我可以删除该缓存,它将被迫重新扫描依赖关系。但那个缓存在哪里?或者是否有另一种方法可以强制VS Code更新其Intellisense? (退出VS代码并重新启动不会这样做。)
我尝试在Cache
中清除CachedData
和C:\Users\[myusername]\AppData\Roaming\Code
的内容,但这没有用。
有一个命令可以自动刷新Java自动完成信息:
java.clean.workspace
您可以使用键盘快捷键将其绑定到一些令人难忘的键。 (警告:之后刷新工作区需要一段时间。)
如果您出于某种原因需要手动执行此操作:
在这个文件夹中......
%USERPROFILE%\AppData\Roaming\Code\User\workspaceStorage
... VS Code使用项目的缓存信息创建了许多小型数据库。那里的文件夹都有GUID名称,但每个文件夹的根目录中的workspace.json
文件显示了它所属的项目,如下所示:
{
"folder": "file:///c%3A/path/to/my/folderforthisproject"
}
我删除了整个workspaceStorage
文件夹,但很明显就足以删除我项目的文件夹了。
我认为Java语言服务器将查找您在Maven和Gradle缓存〜/ .m2和〜/ .gradle中的java.externalDependencies中指定的依赖项。
https://marketplace.visualstudio.com/items?itemName=georgewfraser.vscode-javac