Maven deploy报错 Return code is: 400, ReasonPhrase: Bad Request.

Maven deploy报错

问题发现

deploy项目的正式版本到远程仓库报错,Return code is:400
报错信息

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy (default-deploy) on project xxx: Failed to deploy artifacts: Could not transfer artifact xxx:jar:sources:x from/to xxx Failed to transfer file: xxx Return code is: 400, ReasonPhrase: Bad Request. -> [Help 1]

排查发现私服设置的是不能重复推送,所以如果私服存在相同版本的话是会报这个错误的。可是我在推之前上私服确定过不存在该版本的,为什么还会出现这个问题呢?
看构建日志发现,源码包被upload了两次,在第二次的时候就报了这个错误。
最后发现和maven的插件有关系。

解决

原来的插件是:

 <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>3.0.5</version>
            <executions>
             <execution>  
              <id>attach-sources</id>
              <phase>verify</phase>
                 <goals>
                    <goal>jar-no-fork</goal>
                </goals>
             </execution>
            </executions>
        </plugin>
    </plugins>

修改为:

 <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>3.0.5</version>
            <executions>
             <execution>  
              <id>attach-sources</id>
                 <goals>
                    <goal>jar</goal>
                </goals>
             </execution>
            </executions>
        </plugin>
    </plugins>

修改完之后,再执行构建就不会upload两次了,就可以正常deploy到私服。

查看官网关于这个插件的介绍
http://maven.apache.org/plugins/maven-source-plugin/index.html
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Maven返回代码为501的原因是“https require”,意味着使用的Maven版本不支持通过HTTPS访问仓库。HTTPS是更安全的协议,用于在网络上传输数据时加密数据。为了确保数据的安全性,许多软件仓库都要求必须通过HTTPS访问。 要解决这个问题,需要进行以下操作: 1. 更新Maven版本:首先,尝试升级您的Maven版本,以确保使用的是最新的版本。新版本的Maven通常会添加对HTTPS的支持,从而解决这个问题。 2. 配置代理服务器:如果您使用的是较旧的Maven版本,无法通过升级来解决问题,您可以考虑在Maven的配置文件中添加代理服务器。代理服务器可以中转HTTPS请求,从而解决这个问题。 3. 检查网络连接:如果上述方法都没有解决问题,可能是由于您的网络设置导致无法通过HTTPS访问仓库。请确保您的网络连接是正常的,不会阻止HTTPS请求。 综上所述,解决Maven返回代码为501的问题的方法包括升级Maven版本,配置代理服务器和检查网络连接。根据具体情况选择适合您的解决方案。 ### 回答2: Maven的返回代码是501,原因是HTTPS要求。 当使用Maven构建项目时,有时候会遇到返回代码为501的情况。返回代码501表示服务器不支持所请求的功能。在这种情况下,原因短语(reason phrase)为"HTTPS require",表示服务器要求使用HTTPS协议进行通信。 HTTPS是HTTP的加密版本,对数据传输进行了加密和身份验证,用于确保通信的安全性。而HTTP是明文传输的,存在安全风险。因此,一些服务器要求只能通过HTTPS访问,以增强数据传输的安全性。 如果你在使用Maven构建项目时遇到了返回代码为501,原因短语为"HTTPS require"的错误,可能是服务器要求使用HTTPS协议进行通信。这时,你需要将Maven配置进行相应调整,以使用HTTPS协议进行通信。 要使用HTTPS协议,首先需要确保项目的远程仓库的地址是以"https://"开头的。你可以在项目的pom.xml文件中检查并修改远程仓库的URL地址。 例如: ``` <repositories> <repository> <id>central</id> <url>https://repo1.maven.org/maven2/</url> </repository> </repositories> ``` 在确保远程仓库的URL地址为HTTPS后,你还需要确保本地机器上的Java环境已经配置了相应的HTTPS证书。如果没有配置证书,可能会导致与服务器建立安全连接时出错。 通过以上两个步骤,你可以将Maven的返回代码为501,原因短语为"HTTPS require"的问题解决掉,成功使用HTTPS协议进行Maven的构建操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值