You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Groovy Maven项目getResource对有效资源路径返回null的原因排查

无法找到JSON资源文件的排查方案

针对你遇到的问题——Groovy Maven项目中,通过LayoutReader.class.getResource("/choosechee/cheeboard/layout-schema.json")获取资源返回null,但能获取到对应文件夹的URL,且已在module-info.java中导出包,可从以下几个方向排查:

1. 文件名/路径大小写不匹配

Linux类系统对文件路径大小写敏感,检查代码中写的layout-schema.json和target/classes下实际的文件名是否完全一致,包括连字符、大小写等细节。

2. Maven资源过滤导致文件未正确复制

如果pom.xml中配置了资源过滤,可能会因为过滤规则导致JSON文件未被复制或被篡改。可调整资源配置,确保JSON文件被正确处理:

<build>
    <resources>
        <!-- 对非JSON文件启用过滤 -->
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
            <excludes>
                <exclude>**/*.json</exclude>
            </excludes>
        </resource>
        <!-- 直接复制JSON文件,不做过滤 -->
        <resource>
            <directory>src/main/resources</directory>
            <filtering>false</filtering>
            <includes>
                <include>**/*.json</include>
            </includes>
        </resource>
    </resources>
</build>

3. 切换类加载器方式获取资源

尝试使用类加载器而非类本身的getResource方法,避免类路径解析的差异:

// 注意路径开头不要加斜杠,类加载器从类路径根开始查找
URL layoutSchemaURL = LayoutReader.class.getClassLoader().getResource("choosechee/cheeboard/layout-schema.json")

4. 清理Maven构建缓存

执行mvn clean install命令,彻底清理target目录并重新构建项目,排除缓存文件导致的资源不一致问题。

内容的提问来源于stack exchange,提问作者Choosechee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 04:12:35