解决Maven Not Authorized问题

背景

在我的上一篇博客 中讲到了通过导入远程仓库的证书来通过验证,就可以下载jar包了。
但是在后期的使用中,从Maven远程仓库下载jar包时,再次遇到不能下载的情况,大概错误为:
Not Authorized

解决

因为在我个人的使用中,访问组织内部的远程仓库是需要个人的认证信息(一对账户和密码),这种机制是组织内部处于安全的考虑。所以对于不同公司组织,账户相关的信息不同,需要自己去判断。

再此之前可以做一个简单的测试,直接通过URL在浏览器中去下载需要的jar包或者相对应的pom文件,看是否有弹框出来,提示输入 账号和密码,此时你就可以去验证到底是使用什么账号或者密码。(一般账号和密码验证通过后就可以下载了)

知道账号和密码后,它们就是server 账号和密码,就可以按照下面文章中的步骤,一步步操作,整个过程还是比较清楚的。

主要是修改settings.xml文件,增加下面的配置:

<settings>
...
	<servers>
		<server>
			<id>deploymentRepo</id>
			<username>repouser</username>
			<password>repopwd</password>
		</server>
	</servers>
...
</settings>

在 Apache Maven的官网找到一篇文章,本地尝试后,解决了问题,链接如下:

Maven Password Encryption

这篇文章,主要讲到如何加密密码。

步骤

1. 创建一个 master password

在自己的${user.home}/.m2下新建一个空的settings-security.xml文件,然后打开cmd,执行下面的命令:
注意:从maven 3.2.1开始下面的写法,老版本是把password接在命令后

mvn --encrypt-master-password

然后会提示你输入密码,如下(这里的密码叫做master password,可以随便写,用来加密别的密码的)
在这里插入图片描述
输完密码后,会产生该密码被加密后的版本,例子如下:
在这里插入图片描述
copy上面刚产生的加密后的密码,编辑下面这一段,然后保存到${user.home}/.m2/settings-security.xml中:

<settingsSecurity>
  <master>{U2bwB0MpQHoHGxLuevdmCexRe0v7l5mxpbNufNjeZbQ=}</master>
</settingsSecurity>
2. 加密 server password

打开cmd,执行下面的命令,会提示你输入密码,这个密码就是第二部分教你确认下来的server密码:

mvn --encrypt-password

输完server password后,也会产生一个加密后的版本,如下:
在这里插入图片描述
把上面的密码,添加到${user.home}/.m2/settings.xml中,例如:

<settings>
...
	<servers>
		<server>
			<id>deploymentRepo</id>
			<username>repouser</username>
			<password>{odYOriPr05cHKcLy6ssJzougP7JN21cSZqyGfnG8+dU=}</password>
		</server>
	</servers>
...
</settings>

注意,在上面的password标签中,在{…}外,可以添加任何你想要的信息,相当于加上注释,如下:

<settings>
...
	<servers>
		<server>
			<id>deploymentRepo</id>
			<username>repouser</username>
			<password>test password, expired on 2021-01-01 {odYOriPr05cHKcLy6ssJzougP7JN21cSZqyGfnG8+dU=}</password>
		</server>
	</servers>
...
</settings>

做完上面的操作,再执行mvn命令,就可以解决Maven Not Authorized的问题,之前不能下载的jar包,应该能够成功下载下来。

如果这篇文章对你有帮助,请帮忙点个赞吧,谢谢!

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值