maven仓库密码加密,对settings.xml中的password进行加密

前言:有一个要求就是说不能使用明文密码,需要对 settings.xml 文件中的password密码进行加密

maven版本: 3.6.3

配置maven私库拉取依赖可参考:maven配置远程私有仓库拉取库件

原始配置是没有对密码进行加密的

<server>
   <id>gleam-repo</id>
   <username>admin</username>
   <password>admin123</password>
 </server>

加密

这是接下来需要用到的两个命令

mvn --encrypt-master-password "加盐值"
mvn --encrypt-password "需要加密的密码"

1 获取加密盐值

输入 mvn --encrypt-master-password 回车然后输入给密码加盐的盐值

在这里插入图片描述


2 将加密盐值放到指定文件

然后将上面获取到的加密盐值放到 当前登录用户名\.m2\settings-security.xml 的这个文件的 master 标签内,没有这个文件就新建,以下是这个文件的完整内容

<!-- 
maven安全配置文件(如果没有就手动创建), 内容如下
linux下路径:  ~/.m2/settings-security.xml
window下路径:  %USERPROFILE%\.m2\settings-security.xml
window下路径:  当前登录用户名\.m2\settings-security.xml

%USERPROFILE% 指当前登录windows的用户, 比如我当前登录的账号是admin
完整示例: C:\Users\admin\.m2
-->
<settingsSecurity>
    <!-- master的值为 mvn encrypt-master-password 生成的密文-->
    <master>{2yB41Sc3/uUHseN39zLQB+14crvBhxsQRaXWgOTjdy8=}</master>
</settingsSecurity>

在这里插入图片描述


3 给密码进行加密

输入 mvn --encrypt-password 回车然后输入要加密的仓库密码,比如我的就输入 admin123,然后回车得到的密码就是加密后的密码

在这里插入图片描述


4 替换明文密码

替换 settings.xml 中的password即可

<server>
	<id>gleam-repo</id>
	<username>admin</username>
	<password>{TVKDNf7AL24H6+DZZwlMsc7DCGp+98I0Fa/ZSYTQ4v8=}</password>
</server>

maven配置中央仓库的完整配置

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <!--依赖存放在你本地的仓库地址-->
  <localRepository>C:\environment\apache-maven-3.6.3\maven-repo</localRepository>

  <pluginGroups>
  </pluginGroups>

  <proxies>
  </proxies>

  <!-- servers
   | This is a list of authentication profiles, keyed by the server-id used within the system.
   | Authentication profiles can be used whenever maven must make a connection to a remote server.
   |-->
  <servers>
    <!--仓库用户名和密码, 可配置多个-->
    <server>
      <id>gleam-repo</id>
      <username>admin</username>
      <password>{TVKDNf7AL24H6+DZZwlMsc7DCGp+98I0Fa/ZSYTQ4v8=}</password>
    </server>
  </servers>

  <mirrors>
    <!-- 私库镜像
    如果私库要使用账号密码那么这里 mirror中 的id就要跟 server 中的id保持一致
    因为 Maven 是通过 id 来对比变量和匹配的
    mirrorOf 替代方式, 
      *: 匹配所有,所有内容都从这个镜像拉取
      external:*: 除了本地缓存的所有从镜像仓库拉取;
      repo,repo1: repo或者repo1从这个镜像进行拉取,这里的repo指的profile的ID
      *,!repo1: 除了repo1的所有仓库;
    -->
    <mirror>
      <id>gleam-repo</id>
      <!-- dev 的从这个镜像拉取, 这里的名称跟下面对应的 profile 的id保持一致 -->
      <mirrorOf>dev</mirrorOf>
      <name>公司私库</name>
      <url>http://192.10.10.70:8081/repository/maven-public/</url>
    </mirror>

    <!-- 阿里云镜像 -->
    <mirror>
      <id>aliyunmaven</id>
      <!-- aliyun 的从这个镜像拉取, 这里的名称跟下面对应的 profile 的id保持一致 -->
      <mirrorOf>aliyun</mirrorOf>
      <name>阿里云公共仓库</name>
      <!-- <url>https://maven.aliyun.com/repository/public</url> -->
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>
  </mirrors>


  <profiles>
    <!-- 阿里云仓库配置 -->
    <profile>
      <!-- 这里的id名称跟上面对应的 mirror 镜像的 mirrorOf 名称保持一致 -->
      <id>aliyun</id> 
      <repositories>
        <repository>
          <id>aliyun</id>
          <!-- <url>https://maven.aliyun.com/repository/public</url> -->
          <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
      </repositories>
    </profile>

    <!-- 私库仓库配置 -->
    <profile>
    	<!-- 这里的id名称跟上面对应的 mirror 镜像的 mirrorOf 名称保持一致 -->
		<id>dev</id>
		<repositories>
		 <repository>
          <!-- 如果要使用用户名密码的话 repository 的id就要和mirror的id保持一致 -->
          <id>gleam-repo</id>
          <url>http://192.10.10.70:8081/repository/maven-public/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
		 </repository>
		</repositories>
			<!-- <pluginRepositories>
				<pluginRepository>
					<id>pds-repo</id>
					<name>deployment</name>
					<url>http://192.10.10.70:8081/repository/maven-public/</url>
				</pluginRepository>
			</pluginRepositories> -->
		</profile>
  </profiles>

  <!-- 要激活的配置 -->
  <activeProfiles>
    <activeProfile>aliyun</activeProfile>
    <activeProfile>dev</activeProfile>
  </activeProfiles>
</settings>

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要在Mavensettings.xml文件配置阿里云镜像,你可以按照以下步骤进行操作: 1. 下载Maven:你可以从Maven官方网站\[1\]下载Maven,并将其解压到你的计算机上。 2. 打开settings.xml文件:在Maven的安装目录,找到conf文件夹,里面有一个名为settings.xml的文件。用文本编辑器打开这个文件。 3. 添加阿里云镜像:在settings.xml文件,找到<mirrors>标签,如果没有的话,可以在<settings>标签下添加一个<mirrors>标签。在<mirrors>标签,添加以下代码\[2\] \[3\]: <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/repositories/central/</url> <mirrorOf>central</mirrorOf> </mirror> 这段代码将添加一个名为"alimaven"的镜像,将仓库(central)的所有请求重定向到阿里云镜像。 4. 保存并关闭文件:在完成配置后,保存settings.xml文件并关闭文本编辑器。 现在,你的Maven就已经配置了阿里云镜像。当你使用Maven进行构建或下载依赖时,它将从阿里云镜像获取所需的资源。 #### 引用[.reference_title] - *1* *3* [Maven 环境及settings.xml配置(指定本地仓库、阿里云镜像设置)](https://blog.csdn.net/weixin_43691098/article/details/90307851)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Maven阿里云镜像setting.xml配置文件](https://blog.csdn.net/Chen_Sir____/article/details/120809784)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值