Eclipse 2021-06中执行Maven部署返回401未授权错误如何解决
问题背景
我升级到Eclipse 2021-06 (4.20.0,Build id: 20210612-2011)后执行Maven部署出现异常,此前正常的Eclipse环境被CodeMix损坏。目前命令行可以正常完成部署,已经确认Eclipse会读取正确的Maven配置文件:
[DEBUG] Reading global settings from C:\Users\neilb\.m2\settings.xml [DEBUG] Reading user settings from C:\Users\neilb\.m2\settings.xml
pom文件指向的仓库地址正确,settings.xml中的凭证信息也可以通过命令行部署成功验证,但在Eclipse内执行部署时返回401未授权错误,相关日志如下:
[DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy' with basic configurator --> [DEBUG] (f) artifact = com.ziath.datapaq:scanner:jar:1.5.29 [DEBUG] (f) attachedArtifacts = [] [DEBUG] (s) localRepository = id: local url: file:///C:/Users/neilb/.m2/repository/ layout: default snapshots: [enabled => true, update => always] releases: [enabled => true, update => always] blocked: false [DEBUG] (f) offline = false [DEBUG] (f) packaging = jar [DEBUG] (f) pomFile = C:\Users\neilb\Documents\GitHub\scanner\pom.xml [DEBUG] (f) project = MavenProject: com.ziath.datapaq:scanner:1.5.29 @ C:\Users\neilb\Documents\GitHub\scanner\pom.xml [DEBUG] (f) retryFailedDeploymentCount = 1 [DEBUG] (f) skip = false [DEBUG] (f) updateReleaseInfo = false [DEBUG] -- end configuration -- [DEBUG] Using connector AetherRepositoryConnector with priority 100.0 for http://10.9.8.246:8081/repository/lib-releases/ with username=admin, password=*** [INFO] Uploading to : http://10.9.8.246:8081/repository/lib-releases/com/ziath/datapaq/scanner/1.5.29/scanner-1.5.29.pom [INFO] Uploading to : http://10.9.8.246:8081/repository/lib-releases/com/ziath/datapaq/scanner/1.5.29/scanner-1.5.29.jar [INFO] Uploaded to : http://10.9.8.246:8081/repository/lib-releases/com/ziath/datapaq/scanner/1.5.29/scanner-1.5.29.pom (10 kB at 92 kB/s) [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE
异常信息:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project scanner: Failed to deploy artifacts: Could not transfer artifact com.ziath.datapaq:scanner:jar:1.5.29 from/to releases (http://10.9.8.246:8081/repository/lib-releases/): Access denied to http://10.9.8.246:8081/repository/lib-releases/com/ziath/datapaq/scanner/1.5.29/scanner-1.5.29.jar. Error code 401, Unauthorized -> [Help 1]
解决方法
请按以下顺序修改配置排查问题:
- 切换Eclipse使用的Maven runtime:打开「窗口>首选项>Maven>安装」,取消勾选Eclipse自带的内嵌Maven,勾选你本地命令行使用的Maven版本,保存设置后重启Eclipse。
- 清理Eclipse安全存储的冗余凭证:打开「窗口>首选项>常规>安全>安全存储」,切换到「内容」标签,找到所有和Maven、你的私有仓库地址相关的凭证条目全部删除,避免Eclipse用缓存的错误凭证覆盖settings.xml中的配置。
- 检查Maven运行配置:右键项目选择「运行方式>运行配置」,找到你执行deploy用的Maven构建配置,切换到「参数」标签,确认没有额外的
-Dusername、-Dpassword等参数覆盖settings.xml的凭证,同时确认「用户设置」路径指向你正在使用的正确settings.xml文件。 - 升级maven-deploy-plugin版本:你当前使用的2.7版本和Eclipse 2021-06的Aether连接器存在兼容性问题,可以在项目pom.xml的
build/plugins节点下显式指定更高版本的插件:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <version>3.0.0-M1</version> </plugin>
- 清理本地仓库缓存:删除本地仓库路径下
com/ziath/datapaq/scanner/1.5.29/目录,重新执行clean deploy即可。
内容的提问来源于stack exchange,提问作者Neil Benn
相关产品推荐
相关产品推荐

