使用SBT构建时IntelliJ无法识别根目录 读取配置文件报File Not found错误
问题解决说明
配置文件放置位置
你使用ClassLoader.getSystemResourceAsStream读取的是类路径根目录下的资源文件,SBT遵循标准JVM项目目录结构,配置文件的正确放置路径如下:
- 若该配置文件供主业务代码使用,请放在
src/main/resources目录下 - 若该配置文件仅供单元测试使用,请放在
src/test/resources目录下
文件放到对应目录后,直接按你现有代码的路径读取即可,不需要修改文件名前缀。如果要放在resources的子目录下,读取路径需要同步修改,比如文件放在resources/conf下,读取路径需要改为conf/pgmproperties.properties。
IntelliJ识别异常修复
如果IntelliJ没有识别到SBT项目结构,按以下步骤操作即可:
- 点击顶部菜单栏
File->New->Project from Existing Sources - 选中你项目根目录下的
build.sbt文件,确认以SBT项目模式导入 - 导入完成后,检查
src/main/resources是否被标记为黄色的资源根目录,若未自动标记,右键该目录选择Mark Directory as->Resources Root
自定义资源目录配置(可选)
如果你不想使用默认的resources目录,可以在build.sbt中添加配置指定自定义资源目录:
// 主代码自定义资源目录 Compile / unmanagedResourceDirectories += baseDirectory.value / "自定义目录路径" // 测试代码自定义资源目录 Test / unmanagedResourceDirectories += baseDirectory.value / "自定义测试资源目录路径"
内容的提问来源于stack exchange,提问作者VnS
相关产品推荐
相关产品推荐

