Visual Studio Code中Gradle新Java模块出现类型不可访问错误
问题:Gradle多模块项目VSCode提示类型不可访问但命令行构建正常
问题现象
- 新创建的Java模块作为Gradle子项目,命令行(PowerShell、Cygwin)执行
gradle build可正常构建运行,但Visual Studio Code中依赖该模块的Java项目出现“type is not accessible”提示。 - 代码分支说明:
base:可正常运行的初始代码分支leeca/workspace:Gradle构建正常,但VSCode提示类型不可访问的分支
环境与背景
- 具备多年Java与Gradle使用经验,已安装Extension Pack for Java和Gradle for Java扩展,刚接触Java模块与JavaFX,按VSCode的JavaFX模块化Gradle结构步骤搭建项目。
- 初始子项目为基础模块
depanfx.app,依赖部分JavaFX库,对应base分支可正常运行。
新增模块详情
新增用于工作区模型的模块,包含以下包:
com.pnambic.depanfx.workspace:存放可见类型与工厂类com.pnambic.depanfx.workspace.basic:实现模型逻辑com.pnambic.depanfx.workspace.gui:存放可见类型,开放反射访问给JavaFX
该模块的module-info.java配置如下:
module depanfx.workspace { requires javafx.controls; requires javafx.fxml; opens com.pnambic.depanfx.workspace.gui to javafx.fxml; exports com.pnambic.depanfx.workspace; exports com.pnambic.depanfx.workspace.gui; }
依赖配置修改
为在主项目中使用该模块,已完成两处修改:
- 在DepanFxApp的
module-info.java中添加模块依赖:requires depanfx.workspace; - 在DepanFxApp的
build.gradle中添加Gradle项目依赖:implementation project(':DepanFxWorkspace')
排查线索与尝试操作
- VSCode侧边栏面板存在依赖显示差异:GRADLE PROJECTS面板的Gradle Dependencies中包含新模块,但JAVA PROJECTS面板完全没有DepanFxWorkspace组件的痕迹。
- 已尝试执行
Clean Java Language Server Workspace、重启VSCode等刷新操作,均无法让VSCode识别工作区模块组件在原应用项目中的可见性。
内容的提问来源于stack exchange,提问作者nyc10003
相关产品推荐
相关产品推荐

