maven deploy部署失败码值

如果工件未能从Maven(或其他构建工具)部署,请注意返回的HTTP状态代码。然后查看下面的代码,了解代码的含义,以及如何诊断和修复问题。

Code 400 - Method not Allowed

Nexus已收到您的部署请求,但无法处理它,因为它是无效的。原因有两个。

最常见的原因是您试图将工件重新部署到不允许重新部署的存储库中。检查托管存储库配置中的“部署策略”。如果它被设置为“禁用重新部署”,这意味着您不能重新部署存储库中已经存在的工件。注意,这是Nexus发布库的默认设置,因为重新部署发布构件是maven的反模式。

这段代码的第二个常见原因是,您试图将发布构件部署到快照存储库中,反之亦然。

Code 401 - Unauthorized

要么没有随请求发送登录凭据,要么发送了无效的登录凭据。在Nexus UI中检查“授权和身份验证”系统提要可以帮助缩小范围。如果发送了凭证,提要中将有一个条目。如果没有发送凭据,这可能是由于pom的distributionManagement部分中的id与设置不匹配造成的。保存登录凭证的xml服务器部分。

Code 402 - Payment Required

如果您使用的是Nexus Professional,并且您的许可证已过期,则返回此错误。

Code 403 - Forbidden

发送的登录凭证是有效的,但是用户没有权限上载到存储库。转到Nexus UI中的“administration/security”,打开用户(或者通过外部角色映射映射的用户角色),检查角色树,查看分配给他们的存储库特权。用户将需要创建和更新存储库的特权,以便能够将其部署到其中。

Code 404 - Not Found

存储库URL无效。注意,这段代码是在工件上传完成后返回的,因此可能会有点混乱。

Code 405 - ReasonPhrase:PUT

maven中的仓库分为两种,snapshot快照仓库和release发布仓库。snapshot快照仓库用于保存开发过程中的不稳定版本,release正式仓库则是用来保存稳定的发行版本。定义一个组件/模块为快照版本,只需要在pom文件中在该模块的版本号后加上-SNAPSHOT即可(注意这里必须是大写),如下:

    <groupId>com.jd.m</groupId>
    <artifactId>m-cloud-starter-parent</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>

maven会根据模块的版本号(pom文件中的version)中是否带有-SNAPSHOT来判断是快照版本还是正式版本。如果是快照版本,那么在mvn deploy时会自动发布到快照版本库中,而使用快照版本的模块,在不更改版本号的情况下,直接编译打包时,maven会自动从镜像服务器上下载最新的快照版本。如果是正式发布版本,那么在mvn deploy时会自动发布到正式版本库中,而使用正式版本的模块,在不更改版本号的情况下,编译打包时如果本地已经存在该版本的模块则不会主动去镜像服务器上下载。

所以,我们在开发阶段,可以将公用库的版本设置为快照版本,而被依赖组件则引用快照版本进行开发,在公用库的快照版本更新后,我们也不需要修改pom文件提示版本号来下载新的版本,直接mvn执行相关编译、打包命令即可重新下载最新的快照库了,从而也方便了我们进行开发。

Code 502 - Reverse Proxy Timeout

在Nexus前面有一个反向代理(比如Nginx或Apache+mod_proxy),在反向代理超时设置中指定的时间段内,挂起的部署请求没有活动。这可能是由于超时被设置为一个非常低的值,Nexus服务器处于非常高的负载下,或者是Nexus中的一个bug。如果您需要帮助诊断此联系人支持。

Code 503 - Service unavailable

这不是由Nexus抛出的,而是由您的反向代理抛出的。

  • Nexus运行吗?检查Nexus是否正在运行。
  • 由于它的force base url或jetty.xml设置,Nexus没有正确地重定向。回顾是什么改变了这个功能。
  • 另一台服务器具有与Nexus主机相同的IP,而您的反向代理则很混乱。这是一个网络问题,您的IT人员可能需要帮助您解决。

猜你喜欢

转载自blog.csdn.net/u012060033/article/details/88554909
今日推荐