配置maven私库拉取依赖可参考:maven配置远程私有仓库拉取库件
原始配置是没有对密码进行加密的
<server>
<id>xxx-repo</id>
<username>admin</username>
<password>admin123</password>
</server>
加密
这是接下来需要用到的两个命令
mvn --encrypt-master-password "加盐值"
mvn --encrypt-password "需要加密的密码"
- 获取加密盐值
输入mvn --encrypt-master-password
回车然后输入给密码加盐的盐值
- 获取加密盐值
- 将加密盐值放到指定文件
然后将上面获取到的加密盐值放到 当前登录用户名\.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>