mvn执行deploy时报错问题记录

时间:2022-07-22
本文章向大家介绍mvn执行deploy时报错问题记录,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1、deploy时报错401

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy (default-deploy) on project riskcontrol-alone: Failed to deploy artifacts: Could not transfer artifact com.hexin:riskcontrol-alone:pom:3.0.5 from/to nexus-releases (http://nexus.fgt.com/repository/maven-releases/): Failed to transfer file http://nexus.fgt.com/repository/maven-releases/com/hexin/riskcontrol-alone/3.0.5/riskcontrol-alone-3.0.5.pom with status code 401

这个错误是认证失败导致,大概有几个原因:

  • 本地settings.xml文件没有指定用户名和密码
  • pom.xml文件和settings.xml文件中的ID没有对应

settings.xml文件中的 中的配置要配置正确

<servers>
    <server>
      <id>local-jar</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
    <server>
      <id>nexus-release</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
    <server>
      <id>nexus-snapshots</id>
      <username>admin</username>
      <password>admin123</password>
  </server>
</servers>

pom.xml文件中的ID要对应

pom.xml文件中的配置:
        <distributionManagement>
                <repository>
                        <id>nexus-releases</id>   #可以看到这里和settings.xml文件中的id没有一致,多了一个s
                        <name>Nexus Release Repository</name>
                        <url>http://nexus.fgt.com/repository/maven-releases/</url>
                </repository>
                <snapshotRepository>
                        <id>nexus-snapshots</id>
                        <name>Nexus Snapshot Repository</name>
                        <url>http://nexus.fgt.com/repository/maven-snapshots/</url>
                </snapshotRepository>
        </distributionManagement>

        <repositories>
                <repository>
                        <id>local-jar</id>
                        <name>Nexus</name>
                        <url>http://nexus.fgt.com/repository/maven-public/</url>
                        <releases>
                                <enabled>true</enabled>
                        </releases>
                        <snapshots>
                                <enabled>true</enabled>
                        </snapshots>
                </repository>
        </repositories>

2、deploy过程中返回400

报错信息如下:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy (default-deploy) on project riskcontrol-alone: Failed to deploy artifacts: Could not transfer artifact com.hexin:riskcontrol-alone:pom:3.0.5 from/to nexus-release (http://nexus.fgt.com/repository/maven-releases/): Failed to transfer file http://nexus.fgt.com/repository/maven-releases/com/hexin/riskcontrol-alone/3.0.5/riskcontrol-alone-3.0.5.pom with status code 400

一般返回400错误是由于mvn deploy已存在的包的时候重复上传,nexus release默认是不能重复部署的

解决办法就是修改nexus私服的release配置