切换至Vim后JDTLS未识别项目根目录lombok.config文件问题
解决JDTLS无法识别项目根目录lombok.config的问题
问题原因
编译正常但JDTLS报错,是因为构建工具(Maven/Gradle)会自动扫描项目根目录的lombok.config,但JDTLS的Lombok集成默认不会主动加载该配置文件,导致代码检查时不识别lombok.accessors.chain=true的链式调用设置。
解决步骤
1. 确保JDTLS已正确集成Lombok
检查Vim的LSP配置(以Neovim的nvim-lspconfig为例),确认Lombok的jar包已加入JDTLS的bundle中:
local lombok_jar = vim.fn.expand("~/.m2/repository/org/projectlombok/lombok/[你的lombok版本]/lombok-[你的lombok版本].jar") require('lspconfig').jdtls.setup({ -- 其他配置... init_options = { bundles = { vim.fn.glob(lombok_jar) }, }, })
替换[你的lombok版本]为项目使用的实际版本,确保路径正确。
2. 手动指定lombok.config路径
在JDTLS的settings中添加配置,强制它读取项目根目录的lombok.config:
require('lspconfig').jdtls.setup({ settings = { java = { -- 其他Java配置... lombok = { config = { path = "${workspaceFolder}/lombok.config" } } } }, -- 其他配置... })
${workspaceFolder}会自动替换为当前项目根目录,确保文件路径准确。
3. 刷新JDTLS项目配置
- 重启JDTLS服务:在Neovim中执行
:LspRestart jdtls - 触发项目同步:执行
:lua require('jdtls').update_project_config() - 若仍无效,可删除JDTLS的项目缓存(默认路径
~/.cache/jdtls/workspace/[项目名]),然后重启JDTLS让它重新加载配置。
4. 验证lombok.config语法
确保配置文件无拼写错误,比如lombok.accessors.chain=true格式正确,文件编码为UTF-8,无多余空格或特殊字符。
内容的提问来源于stack exchange,提问作者Derek Li
相关产品推荐
相关产品推荐

