mvn临时推送提示405分析解决
问题
关键错误:
1 | status code: 405, reason phrase: PUT (405) |
现在的问题已经不是 Maven 配置问题,而是 Nexus 仓库地址选错了。
分析
1. 根本原因
你现在配置的是:
1 | -DaltDeploymentRepository=pxb7-releases::http://nexus.pp.internal/repository/maven-public/ |
其中:maven-public通常是 Nexus 的 Group Repository(仓库组)。它的用途是:
1 | 开发者 |
它主要用于 下载依赖,不是用于 PUT 上传。而mvn deploy需要向 Nexus 发:PUT所以 Nexus 对 maven-public 返回:405 Method Not Allowed这正好符合现象。
2. 你应该使用哪个地址?
你的版本是:0.0.1-SNAPSHOT,所以应该上传到:maven-snapshots
例如 Nexus 中:
1 | maven-public |
应该使用:
1 | -DaltDeploymentRepository=pp-snapshots::http://nexus.pp.internal/repository/maven-snapshots/ |
完整:
1 | mvn deploy \ |
1 | mvn clean deploy \ |
settings.xml
1 | <settings> |
一句话:maven-public 用来拉,maven-snapshots/releases 用来推。