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

Maven转Gradle时Geotools依赖已缓存但编译器识别失败问题排查

问题根因

你的依赖配置错误拉取了源码包而非可编译使用的二进制类包:所有geotools依赖坐标后添加的:sources@jar后缀,会指定Gradle仅拉取对应构件的源码jar包,这类包内只有Java源代码文件(.java格式),没有编译后的字节码类文件(.class格式),因此编译器无法识别到对应的类定义。
你在缓存和IDE外部库中看到的文件就是拉取到的源码包,自然不包含可直接引用的类。

修复方案

修改build.gradle中dependencies代码块的geotools相关依赖配置,去掉:sources@jar后缀即可:

dependencies {
    ...
    implementation 'org.geotools:gt-cql:25.2'
    implementation 'org.geotools:gt-epsg-hsql:25.2'
    implementation 'org.geotools:gt-geojson:25.2'
    implementation 'org.geotools:gt-main:25.2'
    implementation 'org.geotools:gt-opengis:25.2'
    implementation 'org.geotools:gt-shapefile:25.2'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    ...
}
可选补充配置

如果需要同时拉取依赖的源码包用于IDE中查看源码,不需要在每个依赖坐标后单独指定sources,添加全局配置即可:

// IntelliJ IDEA 环境配置
idea {
    module {
        downloadJavadoc = true
        downloadSources = true
    }
}

// Eclipse 环境配置
eclipse {
    classpath {
        downloadJavadoc = true
        downloadSources = true
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 20:18:03