当前位置: 首页 > news >正文

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 跳过测试代码

直接运行上面的命令,默认会执行单元测试代码,跳过单元测试使用如下命令:

  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 错误

Java-Maven-解决maven deploy时报 401 Reason Phrase Unauthorized 错误 环境 Java JDK 1.8Maven 3.3.9 引言 项目需要打成jar包上传到私服&#xff0c;供其它项目引用。此时需要执行 mvn clean deploy 命令&#xff0c;执行过程中报 401 错误。 解决401错误 报错信息 执…...

【数据结构】 栈(Stack)的应用场景

文章目录 &#x1f30f;前言&#x1f340;改变元素的序列&#x1f6a9;场景一&#x1f4cc;解析&#xff1a; &#x1f6a9;场景二&#x1f4cc;解析&#xff1a; &#x1f38d;将递归转化为循环&#x1f333;[括号匹配](https://leetcode.cn/problems/valid-parentheses/)&…...

人力资源小程序的设计原则与实现方法

随着移动互联网的快速发展&#xff0c;小程序成为了各行各业推广和服务的新利器。对于人力资源行业来说&#xff0c;开发一款定制化的小程序不仅可以提升服务效率&#xff0c;还可以增强品牌形象和用户粘性。那么&#xff0c;如何定制开发人力资源类的小程序呢&#xff1f;下面…...

检查Javascript对象数组中是否存在对象值,如果没有向数组添加新对象

需求&#xff1a; 如果我有以下对象数组&#xff1a; [ { id: 1, username: fred }, { id: 2, username: bill }, { id: 2, username: ted } ]有没有办法循环遍历数组&#xff0c;以检查特定的用户名值是否已经存在&#xff0c;如果它什么都不做&#xff0c;但是如果它没有用…...

UG\NX二次开发 使用录制功能录制操作记录时,如何设置默认的开发语言?

文章作者&#xff1a;里海 来源网站&#xff1a;王牌飞行员_里海_里海NX二次开发3000例,C\C,Qt-CSDN博客 简介&#xff1a; NX二次开发使用BlockUI设计对话框时&#xff0c;如何设置默认的代码语言&#xff1f; 效果&#xff1a; 方法&#xff1a; 依次打开“文件”->“实用…...

【业务功能篇83】微服务SpringCloud-ElasticSearch-Kibanan-docke安装-应用层实战

五、ElasticSearch应用 1.ES 的Java API两种方式 Elasticsearch 的API 分为 REST Client API&#xff08;http请求形式&#xff09;以及 transportClient API两种。相比来说transportClient API效率更高&#xff0c;transportClient 是通过Elasticsearch内部RPC的形式进行请求…...

VBJSON报错:缺少:语句结束

项目中使用JSON库VBJSON时报错&#xff1a; 编译错误&#xff1a;缺少&#xff1a;语句结束 cJSONScript和cStringBuilder报相同的错误&#xff0c;都在第一行: VERSION 1.0 CLASS 研究了半天没啥结果&#xff0c;之前使用这个库的时候没有什么问题&#xff0c;所以判定是当前…...

Docker安装ES+kibana8.9.1

参考&#xff1a;基于Docker安装Elasticsearch【保姆级教程、内含图解】_docker elasticsearch_Acloasia的博客-CSDN博客 创建网络 docker network create es-net 基于Docker安装Elasticsearch 拉取镜像 docker pull elasticsearch:8.9.1 挂载文件 mkdir -p /usr/local/e…...

12. Oracle中case when详解

格式&#xff1a; case expression when condition_01 then result_01 when condition_02 then result_02 ...... when condition_n then result_n else result_default end 表达式expression符合条件condition_01&#xff0c;则返回…...

【电路设计】220V AC转低压DC电路概述

前言 最近因项目需要,电路板上要加上一个交流220V转低压直流,比如12V或者5V这种。一般来说,比较常见也比较简单的做法是使用一个变压器将220V AC进行降压,比如降到22V AC,但是很遗憾的是,支持220V的变压器一般体积很大,而板子留给电源部分的面积又非常有限,所以不得不研…...

网络地址转换NAT-动态NAT的使用范围和配置-思科EI,华为数通

网络地址转换NAT-动态NAT的使用范围和配置 什么是动态NAT&#xff1f; 使用公有地址池&#xff0c;并以先到先得的原则分配这些地址。当具有私有 IP 地址的主机请求访问 Internet 时&#xff0c;动态 NAT 从地址池中选择一个未被其它主机占用的 IP 地址一对一的转化。当数据会话…...

远程连接虚拟机中ubuntu报错:Network error:Connection refused

ping检测一下虚拟机 可以ping通&#xff0c;说明主机是没问题 #检查ssh是否安装&#xff1a; ps -e |grep ssh发现ssh没有安装 #安装openssh-server sudo apt-get install openssh-server#启动ssh service ssh startps -e |grep ssh检查一下防火墙 #防火墙状态查看 sudo ufw…...

快速排序三种思路详解!

一、快速排序的介绍 快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法&#xff0c;其基本思想为&#xff1a;任取待排序元素序列中 的某元素作为基准值&#xff0c;按照该排序码将待排序集合分割成两子序列&#xff0c;左子序列中所有元素均小于基准值&#xff0c;…...

【二叉树入门指南】链式结构的实现

【二叉树入门指南】链式结构的实现 一、前置说明二、二叉树的遍历2.1前序遍历2.2中序遍历2.3 后序遍历 三、以前序遍历为例&#xff0c;递归图解四、层序遍历五、节点个数以及高度等5.1 二叉树节点个数5.2二叉树叶子节点个数5.3 二叉树第k层节点个数5.4 二叉树查找值为x的节点5…...

【位运算】算法实战

文章目录 一、算法原理常见的位运算总结 二、算法实战1. leetcode面试题01.01. 判断字符是否唯一2. leetcode268 丢失的数字3. leetcode371 两整数之和4. leetcode004 只出现一次的数字II5. leetcode面试题17.19. 消失的两个数字 三、总结 一、算法原理 计算机中的数据都以二进…...

C++构建系统

收集C构建系统(2023)&#xff1a; 跟我一起写Makefile (PDF重制版)CMake tutorialConan, software package manager for C and C developersvcpkg-repovcpkgGoogle Bazel Build System { Fast, Correct } — Choose twoGN gn_quick_start当前Chromium构建系统 GYP Generate You…...

“深入探索JVM内部机制:理解Java虚拟机的运行原理“

标题&#xff1a;深入探索JVM内部机制&#xff1a;理解Java虚拟机的运行原理 摘要&#xff1a;本篇博客将深入探索Java虚拟机&#xff08;JVM&#xff09;的内部机制&#xff0c;帮助读者理解JVM的运行原理。我们将介绍JVM的组成结构&#xff0c;包括类加载器、运行时数据区域…...

java八股文面试[JVM]——双亲委派模型

1.当AppClassLoader去加载一个class时&#xff0c;它首先不会自己去尝试加载这个类&#xff0c;而是把类加载请求委托给父加载器ExtClassLoader去完成。 2.当ExtClassLoader去加载一个class时&#xff0c;它首先也不会去尝试加载这个类&#xff0c;而是把类加载请求委托给父加载…...

NLP与大模型主题全国师资培训班落地,飞桨持续赋能AI人才培养

为了推动大模型及人工智能相关专业人员的培养&#xff0c;8月11日-8月13日&#xff0c;由中国计算机学会主办、机械工业出版社、北京航空航天大学、百度飞桨联合承办 “CCF群星计划之文心高校行- NLP与大模型”主题师资培训班&#xff08;以下简称培训班&#xff09;在北京天信…...

Jupyter Notebook 配置根目录

注&#xff1a;本文是在 Windows 10 上配置 Jupyter Notebook 打开的默认根目录&#xff0c;Linux 同。 步骤一&#xff1a;创建 Jupyter Notebook 配置文件 使用以下命令创建 Jupyter Notebook 配置文件&#xff08;如果尚未创建&#xff09;&#xff1a; jupyter notebook …...

告别沉浸式白屏!UniApp中iOS/Android底部安全区与顶部状态栏颜色自定义全攻略

告别沉浸式白屏&#xff01;UniApp中iOS/Android底部安全区与顶部状态栏颜色自定义全攻略当开发者尝试在UniApp中实现沉浸式设计时&#xff0c;往往会遇到一个令人头疼的问题——默认的白色安全区和状态栏导致界面元素&#xff08;如电池图标、信号强度&#xff09;几乎不可见。…...

从多路复用到三维光阵:Arduino驱动8x8x8 LED立方体全解析

1. 项目概述&#xff1a;用Arduino点亮一个三维世界几年前&#xff0c;我第一次在创客展上看到一个8x8x8的LED立方体&#xff0c;那种由数百个光点构成的、在三维空间中流动的动画效果&#xff0c;瞬间就把我吸引住了。它不像普通的平面LED屏&#xff0c;而是真正有“深度”的光…...

量子软件测试的挑战与优化策略

1. 量子软件测试的挑战与机遇量子计算正在从实验室走向实际应用&#xff0c;随之而来的是对可靠量子软件的需求激增。与传统软件不同&#xff0c;量子程序面临三大独特挑战&#xff1a;首先&#xff0c;量子态的叠加性和纠缠性使得测试变得异常复杂。一个n量子比特系统可以同时…...

别再用SonarQube凑数了!DeepSeek原生圈复杂度引擎的6大颠覆性能力(含GitHub私有部署密钥)

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;DeepSeek圈复杂度分析的底层原理与范式革命 DeepSeek圈复杂度分析并非传统McCabe度量的简单复刻&#xff0c;而是基于控制流图&#xff08;CFG&#xff09;动态重构与语义感知路径裁剪的双重机制构建的新范式。…...

Sora 2原生接入Unity 6.0:5步完成神经渲染管线嵌入,实测帧率提升47%(附GitHub认证插件)

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;Sora 2与Unity整合 Sora 2作为新一代AI视频生成引擎&#xff0c;其开放API设计天然支持与实时3D引擎的深度协同。Unity 2023.2版本通过URP&#xff08;Universal Render Pipeline&#xff09;与C# Job System提…...

rk35xx 通过recovery升级问题

Firefly 的 recovery 库是一个核心组件&#xff0c;它构建了一个独立的微型 Linux 系统&#xff0c;专门用于在设备主系统之外执行高可靠性的固件升级。简单来说&#xff0c;它的工作流程是&#xff1a;主系统通过命令触发&#xff0c;将升级指令写入特定分区并重启&#xff1b…...

告别元素变动导致的报错:探索自动化测试脚本的 AI“自愈”能力

前言:一个所有测试人都经历过的噩梦 周三晚上十一点,CI/CD流水线再次亮起红灯。 你打开日志,满屏的NoSuchElementException扑面而来。仔细一看——前端团队在昨天的版本中重构了登录页面的DOM结构,原本的#login-btn变成了#signin-button-v2,30个测试用例因此全军覆没。 …...

DeepSeek重复代码识别失效了?5个被90%团队忽略的AST解析盲区及修复清单

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;DeepSeek代码重复检测失效的真相与影响 DeepSeek-R1 模型在代码理解任务中表现出色&#xff0c;但其内置的代码重复检测机制在特定场景下存在系统性失效。根本原因在于模型对语义等价但语法结构差异显著的代…...

【DeepSeek集成测试黄金标准】:20年专家亲授5大避坑指南与自动化落地框架

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;DeepSeek集成测试黄金标准的演进与核心价值 集成测试在大语言模型工程化落地过程中已从“验证功能可用”跃迁为“保障推理一致性、上下文鲁棒性与安全边界的三位一体质量门禁”。DeepSeek系列模型&…...

C语言(12) 指针的常见操作

指针的常见操作指针变量&#xff0c;有两方面的意思:一个指针指向的内容(数据值&#xff0c;一级)指针变量本身存储的数据 (地址值)#include <stdio.h>int main() {int a 10;int b 0 ;int c 50;int *p NULL;int *q NULL;p &a; // 对指针变量本身进行修改// 对指…...