Java-Maven-解决maven deploy时报 401 Reason Phrase Unauthorized 错误

这篇具有很好参考价值的文章主要介绍了Java-Maven-解决maven deploy时报 401 Reason Phrase Unauthorized 错误。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Java-Maven-解决maven deploy时报 401 Reason Phrase Unauthorized 错误

环境

  • Java JDK 1.8
  • Maven 3.3.9

引言

项目需要打成jar包上传到私服,供其它项目引用。此时需要执行 mvn clean deploy 命令,执行过程中报 401 错误。

解决401错误

报错信息

执行命令:mvn clean deploy -DskipTests

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy (default-deploy) on project xxxxx: Failed to deploy artifacts: Could not transfer artifact com.xxxxx:xxxxx:jar:spring
-1.0.10-20210812.035258-1 from/to nexus-snapshots (http://xxxx.com/nexus/content/repositories/snapshots): Failed to transfer file: http://xxxx.com/nexus/content/repositories/snapshots/com/.../spring-1.0.
10-SNAPSHOT/xxxxx-spring-1.0.10-20210812.035258-1.jar. Return code is: 401, ReasonPhrase: Unauthorized. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
PS D:\...\xxxxx> mvn clean deploy -DskipTests

关键错误信息

  • 关键错误信息1: Failed to deploy artifacts
  • 关键错误信息2: Could not transfer artifact com.*:*:pom:* from/to snapshots (http://dev-mvn.***.com/content/repositories/snapshots/)
  • 关键错误信息3: Return code is: 401, ReasonPhrase: Unauthorized. -> [Help 1]
  • 提取关键错误信息:Could not transfer …… from/to snapshots …… Return code is: 401, ReasonPhrase: Unauthorized.
  • 很明显了,是由于权限的问题导致服务器拒绝了本次推送。

解决方案

  • 检查开发环境使用的maven配置文件
    • 我用的是idea
    • maven配置位置:File/Settings; Build,Execution,Deployment/Build Tools/Maven;
    • User settings file: D:/java/maven/apache-maven-3.3.9\conf\settings.xml
  • 修改settings.xml ,加入如下配置:
<!--服务器元素包含配置服务器时需要的信息 -->
<servers>
    <server>
        <!--这是server的id(注意不是用户登陆的id),该id与distributionManagement中repository元素的id相匹配。-->
        <id>nexus-snapshots</id>
        <username>deployment</username>
        <password>123456</password>
    </server>
    ...
</servers>
  • 再次执行 mvn clean deploy -DskipTests 命令,显示上传成功!
[INFO] --- maven-deploy-plugin:2.8.2:deploy (default-deploy) @ mytest ---
Downloading: http://dev.xxx.com/nexus/content/repositories/snapshots/com/xxxx/spring-1.0.10-SNAPSHOT/maven-metadata.xml
Uploading: http://dev.xxx.com/nexus/content/repositories/snapshots/com/xxxx/spring-1.0.10-SNAPSHOT/mytest-spring-1.0.10-20210812.035231-1.jar
Uploaded: http://dev.xxx.com/nexus/content/repositories/snapshots/com/xxxx/spring-1.0.10-SNAPSHOT/mytest-spring-1.0.10-20210812.035231-1.jar (127643 KB at 13522.8 KB/sec)
Uploading: http://dev.xxx.com/nexus/content/repositories/snapshots/com/xxxx/spring-1.0.10-SNAPSHOT/mytest-spring-1.0.10-20210812.035231-1.pom
Uploaded: http://dev.xxx.com/nexus/content/repositories/snapshots/com/xxxx/spring-1.0.10-SNAPSHOT/mytest-spring-1.0.10-20210812.035231-1.pom (7 KB at 53.9 KB/sec)
Downloading: http://dev.xxx.com/nexus/content/repositories/snapshots/com/xxxx/maven-metadata.xml
Uploading: http://dev.xxx.com/nexus/content/repositories/snapshots/com/xxxx/spring-1.0.10-SNAPSHOT/maven-metadata.xml
Uploaded: http://dev.xxx.com/nexus/content/repositories/snapshots/com/xxxx/spring-1.0.10-SNAPSHOT/maven-metadata.xml (803 B at 8.2 KB/sec)
Uploading: http://dev.xxx.com/nexus/content/repositories/snapshots/com/xxxx/maven-metadata.xml
Uploaded: http://dev.xxx.com/nexus/content/repositories/snapshots/com/xxxx/maven-metadata.xml (297 B at 2.5 KB/sec)
Uploading: http://dev.xxx.com/nexus/content/repositories/snapshots/com/xxxx/spring-1.0.10-SNAPSHOT/mytest-spring-1.0.10-20210812.035231-1-sdk.jar
Uploaded: http://dev.xxx.com/nexus/content/repositories/snapshots/com/xxxx/spring-1.0.10-SNAPSHOT/mytest-spring-1.0.10-20210812.035231-1-sdk.jar (602 KB at 3039.0 KB/sec)
Uploading: http://dev.xxx.com/nexus/content/repositories/snapshots/com/xxxx/spring-1.0.10-SNAPSHOT/maven-metadata.xml
Uploaded: http://dev.xxx.com/nexus/content/repositories/snapshots/com/xxxx/spring-1.0.10-SNAPSHOT/maven-metadata.xml (1021 B at 8.4 KB/sec)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 37.694 s
[INFO] Finished at: 2023-08-22T11:56:51+08:00
[INFO] Final Memory: 73M/974M
[INFO] ------------------------------------------------------------------------

mvn package、install、deploy命令的区别

mvn package 命令:在项目的target目录下生成java包

当我们使用package来打包项目的时候,就会在我们的项目目录下生成一个target文件夹。
如果是web项目比如MVC项目就会在该文件夹下生成一个war包,放在服务器中的tomcat/webapps目录里即可运行。
如果是Java项目的话就会在该文件夹下生成一个jar包,放在服务器中指定目录下使用"java -jar jar包名"命令运行。
一般我们服务器部署服务都是使用package方式打包项目。

mvn install 命令: 将java包安装到本地maven仓

使用install方式就是将项目转换成为maven依赖存放在本地maven仓库中。
就比如我的spring boot项目执行mvn install 命令后,将把jar存在我本地maven仓库中。
比如我自己配置的maven路径是:D:\java\maven\repository… 。
一般是多个项目中,例如a项目中使用了b项目的一些方法需要添加b项目作为依赖,此时就需要将b项目使用install方式打包到本地[maven]仓库中,以此来给a项目依赖导入调用。

mvn deploy 命令:将java包发布到中央仓(注:需要在maven中配置有权限的推送账户名+密码)

deploy与install的主要区别就是install是将项目jar包放在本地仓库,而deploy是放在私服仓库。
在本地的pom文件配置好私服仓库的信息之后,执行deploy命令,可以将maven所打的jar包上传到远程的repository,便于其他开发者和工程共享。
执行maven deploy命令成功之后,登录私服进行查询,即可看到对应的jar包。

mvn 跳过测试代码

直接运行上面的命令,默认会执行单元测试代码,跳过单元测试使用如下命令:文章来源地址https://www.toymoban.com/news/detail-673957.html

  1. mvn -DskipTests
  2. mvn -Dmaven.test.skip=true

区别

  • mvn clean package -DskipTests
    • 不执行测试用例,但编译测试用例类,将在target/test-classes目录生成相应的class文件。
    • 使用 mvn package -DskipTests 跳过单元测试,但是会继续编译。
  • mvn clean package -Dmaven.test.skip=true
    • 不执行测试用例,也不编译测试用例类;
    • 使用maven.test.skip不但跳过单元测试的运行,也跳过测试代码的编译;

到了这里,关于Java-Maven-解决maven deploy时报 401 Reason Phrase Unauthorized 错误的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 配置Maven时报错The JAVA_HOME environment variable is not defined correctly,this environment解决方法汇总

    在检验maven是否安装成功时: C:Users28955mvn -v The JAVA_HOME environment variable is not defined correctly, this environment variable is needed to run this program. 呜呜呜,真难啊 搜了原因发现是因为高版本的JDK如JDK17免安装版没有JRE,配置好环境变量Maven识别不出JDK的位置导致的报错 1.找到maven的bin目

    2024年01月25日
    浏览(32)
  • maven install时报错 Cannot run program “java”

    在 /usr/bin 查看有没有java的命令 没有则创建软连接: sudo ln -s /media/hygd/Data/jdk/linux/jdk/jdk/jdk1.8.0_131/bin/java java 路径需要换成自己jdk路径 附:linux配置java和maven和tomcat环境变量 java命令新打开shell窗口不生效,需要source /etc/profile才生效

    2024年02月16日
    浏览(27)
  • maven运行时报错“java.lang.NoClassDefFoundError:sun/misc/BASE64Decoder”

    项目中用到加密jar包,单独在idea中运行项目时正常,通过mvn命令行运行时报错“java.lang.NoClassDefFoundError:sun/misc/BASE64Decoder” 搜索之后发现 sun/misc/BASE64Encoder 这个东西仅在jdk1.8以及之前的版本存在,更高版本的jdk不存在了 一翻纠结 Mac下查看已安装的jdk版本及其安装目录 查看

    2024年01月23日
    浏览(36)
  • maven多模块----子模块相互依赖打包时报错找不到类的解决方案

    在被依赖的模块pom文件中加上如下配置: 注:如果你的配置文件就是如上配置,那么你需要在maven打包的时候,install一下,就可以依赖了

    2024年02月16日
    浏览(39)
  • Nexus仓库介绍以及maven deploy配置

    首先介绍一下Nexus的四个仓库的结构: maven-central 代理仓库,代理了maven的中央仓库:https://repo1.maven.org/maven2/; maven-public 仓库组,另外三个仓库都归属于这个组,所以我们的maven配置文件只需配置这个仓库的地址,就可以使用另外三个仓库的组件; maven-releases 稳定版本仓库,

    2024年02月10日
    浏览(30)
  • maven deploy上传本地jar至私服

    首先目前依赖包的管理大多数是maven,其次当使用到第三方的包的时候,官方的仓库或者aliyun的maven都是没有这个包的。那么,为了方便我们使用 我们需要将本地的这个jar上传到 公司内部的私服去,以便大家使用 我们直接使用maven-deploy插件进行上传 各参数代表含义为: gro

    2024年02月15日
    浏览(31)
  • Return code is: 401, ReasonPhrase: Unauthorized.Maven部署到Nexus失败

    完整错误:deploy (default-deploy) on project maven_01_parent: Failed to deploy artifacts: Could not transfer artifact com.kk:maven_01_parent:pom:1.0-20230405.031950-1 from/to kk-snapshot (http://localhost:8081/repository/kk-snapshot/): Failed to transfer file: http.Return code is: 401, ReasonPhrase: Unauthorized. 1、问题分析 根据其他文章的总结

    2023年04月09日
    浏览(32)
  • DBeaver连接mysql时报错com.mysql.cj.jdbc.Driver的解决方法【修改驱动下载的maven地址和重新下载驱动】

    网上下载了最新版本的DBeaver软件,但是链接mysql的时候驱动下载失败,所以就报下面错误了 原因:其实就是软件自带的下载maven地址不能用,如果你有看下载驱动界面,会看到提示的报错是超时。 所以就是因为驱动没下载成功所以链接才会有这个报错的。 位置如下【我下面

    2024年02月12日
    浏览(45)
  • 【java】[maven]每次创建一个maven模块时java compiler版本就是1.6与实际版本不一致(解决本质问题)

    目录 方案一: 我没有使用 方案二:修改maven配置文件 前言:每次创建一个maven模块时java compiler版本就是1.6与实际版本不一致 使用的使用maven3.9.1 jdk17,但是每次创建一个maven模块都是会影响之前的模块。网上都是修改pom.xml 因为在项目中如果没有指定jdk的版本,重新运行的时

    2024年02月10日
    浏览(35)
  • Maven Compile时报错 [ERROR] [X Group Enforcer Rules] find DuplicateClasses

    类冲突 [ERROR] [Ctrip Group Enforcer Rules] find DuplicateClasses Found in: net.jpountz.lz4:lz4:jar:1.3.0:compile org.lz4:lz4-java:jar:1.7.1:compile Duplicate classes: net/jpountz/xxhash/AbstractStreamingXXHash32Java.class net/jpountz/lz4/LZ4BlockInputStream.class net/jpountz/xxhash/XXHash32JNI.class 这种情况是因为相同类被不同jar包引用,用

    2024年02月07日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包