本地Maven构建成功但Jenkins CI/CD无法解析依赖问题
问题场景
本地执行mvn clean install构建项目完全正常,但通过Jenkins CI/CD流水线构建时,出现依赖解析失败错误,提示无法找到以下两个依赖:
com.workfusion.automation.rpa:rpa-custom-elements:jar:1.4com.workfusion.idp:idp-commons:jar:2.0.6
根因分析
这两个依赖仅存在于WorkFusion Nexus的content/groups/dependencies仓库,并不在content/repositories/wf-dependencies仓库中。虽然项目主POM已经配置了该groups仓库,但Jenkins构建时使用的Maven settings.xml文件仅配置了Maven中央仓库和content/repositories/wf-dependencies仓库,未包含content/groups/dependencies仓库,导致Jenkins无法从正确的源拉取依赖。
解决步骤
修改Jenkins使用的Maven settings.xml
找到Jenkins服务器上对应的Mavensettings.xml文件(通常路径为~/.m2/settings.xml,或Jenkins全局配置中指定的路径),在<profiles>下的<repositories>节点中添加WorkFusion Nexus的groups仓库配置:<settings> <profiles> <profile> <id>workfusion-repos</id> <activation> <activeByDefault>true</activeByDefault> </activation> <repositories> <!-- 保留已有的仓库配置 --> <repository> <id>central</id> <url>https://repo1.maven.org/maven2/</url> </repository> <repository> <id>wf-dependencies</id> <url>https://your-workfusion-nexus-url/content/repositories/wf-dependencies/</url> </repository> <!-- 添加缺失的groups仓库 --> <repository> <id>wf-groups-deps</id> <url>https://your-workfusion-nexus-url/content/groups/dependencies/</url> </repository> </repositories> </profile> </profiles> </settings>注意将
https://your-workfusion-nexus-url替换为实际的WorkFusion Nexus地址。确认Jenkins的Maven配置
如果Jenkins使用全局Maven配置,进入Jenkins管理界面的「全局工具配置」,检查Maven的「Settings file」是否指向了修改后的settings.xml文件,确保配置生效。重新触发构建
回到Jenkins流水线任务,重新触发构建,验证依赖解析是否正常完成。
额外注意事项
- 确保Jenkins服务器网络能够访问WorkFusion Nexus的
content/groups/dependencies仓库,没有防火墙或权限限制。 - 若项目POM中的仓库配置被Jenkins的
settings.xml覆盖,需确保settings.xml中的仓库配置优先级正确,或调整POM中的仓库配置以适配Jenkins环境。
内容的提问来源于stack exchange,提问作者Nitin Rathod

