Maven编译报错:找不到nl.altindag.ssl.SSLFactory类
我查遍了"cannot find symbol"的相关问题,大多只给出模糊解释:“这意味着Java源码或编译方式存在问题”,但解决不了我的实际情况。当前编译报错信息如下:
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ user-management-service ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 123 source files to F:\Work\user-management-service\target\classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /F:/Work/user-management-service/src/main/java/uk/co/senapt/crm/user/management/service/ServerSecurityContextExtension.java:[13,23] cannot find symbol
symbol: class SSLFactory
location: package nl.altindag.ssl
[INFO] 1 error
[INFO] -------------------------------------------------------------
对应的Java类提示cannot find symbol,该错误与以下导入语句直接相关:
import nl.altindag.ssl.SSLFactory; import nl.altindag.ssl.util.PemUtils;
我已在pom.xml中添加了对应依赖,但问题依旧:
... <dependency> <groupId>io.github.hakky54</groupId> <artifactId>sslcontext-kickstart</artifactId> <version>7.1.0</version> </dependency> <dependency> <groupId>io.github.hakky54</groupId> <artifactId>sslcontext-kickstart-for-pem</artifactId> <version>7.1.0</version> </dependency> ...
另外Maven依赖列表中出现“omitted for duplicate”提示,不确定是否与此问题相关。
排查与解决建议
验证依赖是否正确引入
执行mvn dependency:tree命令,查看输出中是否存在io.github.hakky54:sslcontext-kickstart:7.1.0和sslcontext-kickstart-for-pem的条目。如果没有,说明依赖未被加载,需检查Maven仓库配置或依赖坐标(groupId/artifactId/version)是否准确。处理重复依赖问题
执行mvn dependency:tree -Dverbose,定位被标记为“omitted for duplicate”的依赖项,确认是否与sslcontext-kickstart相关。若是,可在pom.xml中通过<exclusions>标签手动排除重复依赖,确保目标类所在的包被正确保留。清理缓存并重编译
执行以下命令清理本地Maven缓存与旧编译文件,强制更新依赖后重新编译:mvn clean install -U核对类的包路径与版本匹配性
打开本地Maven仓库中sslcontext-kickstart的jar包,查看内部目录结构,确认7.1.0版本中SSLFactory是否确实位于nl.altindag.ssl包下(部分版本可能调整过类的包路径)。检查编译插件配置
确认maven-compiler-plugin的source/target版本与依赖要求的JDK版本兼容,避免因版本不兼容导致类无法被识别。
内容的提问来源于stack exchange,提问作者constantlyFlagged

