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 跳过测试代码
直接运行上面的命令,默认会执行单元测试代码,跳过单元测试使用如下命令:
- mvn -DskipTests
- 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包上传到私服,供其它项目引用。此时需要执行 mvn clean deploy 命令,执行过程中报 401 错误。 解决401错误 报错信息 执…...
【数据结构】 栈(Stack)的应用场景
文章目录 🌏前言🍀改变元素的序列🚩场景一📌解析: 🚩场景二📌解析: 🎍将递归转化为循环🌳[括号匹配](https://leetcode.cn/problems/valid-parentheses/)&…...
人力资源小程序的设计原则与实现方法
随着移动互联网的快速发展,小程序成为了各行各业推广和服务的新利器。对于人力资源行业来说,开发一款定制化的小程序不仅可以提升服务效率,还可以增强品牌形象和用户粘性。那么,如何定制开发人力资源类的小程序呢?下面…...
检查Javascript对象数组中是否存在对象值,如果没有向数组添加新对象
需求: 如果我有以下对象数组: [ { id: 1, username: fred }, { id: 2, username: bill }, { id: 2, username: ted } ]有没有办法循环遍历数组,以检查特定的用户名值是否已经存在,如果它什么都不做,但是如果它没有用…...
UG\NX二次开发 使用录制功能录制操作记录时,如何设置默认的开发语言?
文章作者:里海 来源网站:王牌飞行员_里海_里海NX二次开发3000例,C\C,Qt-CSDN博客 简介: NX二次开发使用BlockUI设计对话框时,如何设置默认的代码语言? 效果: 方法: 依次打开“文件”->“实用…...
【业务功能篇83】微服务SpringCloud-ElasticSearch-Kibanan-docke安装-应用层实战
五、ElasticSearch应用 1.ES 的Java API两种方式 Elasticsearch 的API 分为 REST Client API(http请求形式)以及 transportClient API两种。相比来说transportClient API效率更高,transportClient 是通过Elasticsearch内部RPC的形式进行请求…...
VBJSON报错:缺少:语句结束
项目中使用JSON库VBJSON时报错: 编译错误:缺少:语句结束 cJSONScript和cStringBuilder报相同的错误,都在第一行: VERSION 1.0 CLASS 研究了半天没啥结果,之前使用这个库的时候没有什么问题,所以判定是当前…...
Docker安装ES+kibana8.9.1
参考:基于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详解
格式: 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,则返回…...
【电路设计】220V AC转低压DC电路概述
前言 最近因项目需要,电路板上要加上一个交流220V转低压直流,比如12V或者5V这种。一般来说,比较常见也比较简单的做法是使用一个变压器将220V AC进行降压,比如降到22V AC,但是很遗憾的是,支持220V的变压器一般体积很大,而板子留给电源部分的面积又非常有限,所以不得不研…...
网络地址转换NAT-动态NAT的使用范围和配置-思科EI,华为数通
网络地址转换NAT-动态NAT的使用范围和配置 什么是动态NAT? 使用公有地址池,并以先到先得的原则分配这些地址。当具有私有 IP 地址的主机请求访问 Internet 时,动态 NAT 从地址池中选择一个未被其它主机占用的 IP 地址一对一的转化。当数据会话…...
远程连接虚拟机中ubuntu报错:Network error:Connection refused
ping检测一下虚拟机 可以ping通,说明主机是没问题 #检查ssh是否安装: ps -e |grep ssh发现ssh没有安装 #安装openssh-server sudo apt-get install openssh-server#启动ssh service ssh startps -e |grep ssh检查一下防火墙 #防火墙状态查看 sudo ufw…...
快速排序三种思路详解!
一、快速排序的介绍 快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法,其基本思想为:任取待排序元素序列中 的某元素作为基准值,按照该排序码将待排序集合分割成两子序列,左子序列中所有元素均小于基准值,…...
【二叉树入门指南】链式结构的实现
【二叉树入门指南】链式结构的实现 一、前置说明二、二叉树的遍历2.1前序遍历2.2中序遍历2.3 后序遍历 三、以前序遍历为例,递归图解四、层序遍历五、节点个数以及高度等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): 跟我一起写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虚拟机的运行原理“
标题:深入探索JVM内部机制:理解Java虚拟机的运行原理 摘要:本篇博客将深入探索Java虚拟机(JVM)的内部机制,帮助读者理解JVM的运行原理。我们将介绍JVM的组成结构,包括类加载器、运行时数据区域…...
java八股文面试[JVM]——双亲委派模型
1.当AppClassLoader去加载一个class时,它首先不会自己去尝试加载这个类,而是把类加载请求委托给父加载器ExtClassLoader去完成。 2.当ExtClassLoader去加载一个class时,它首先也不会去尝试加载这个类,而是把类加载请求委托给父加载…...
NLP与大模型主题全国师资培训班落地,飞桨持续赋能AI人才培养
为了推动大模型及人工智能相关专业人员的培养,8月11日-8月13日,由中国计算机学会主办、机械工业出版社、北京航空航天大学、百度飞桨联合承办 “CCF群星计划之文心高校行- NLP与大模型”主题师资培训班(以下简称培训班)在北京天信…...
Jupyter Notebook 配置根目录
注:本文是在 Windows 10 上配置 Jupyter Notebook 打开的默认根目录,Linux 同。 步骤一:创建 Jupyter Notebook 配置文件 使用以下命令创建 Jupyter Notebook 配置文件(如果尚未创建): jupyter notebook …...
AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
代码规范和架构【立芯理论一】(2025.06.08)
1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...
省略号和可变参数模板
本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...
android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...
