maven加密nexus私服密码
使用的maven 版本 3.2.5
Nexus版本 3.X
1.准备用户master密钥文件
Master Password 是加密server密码的一个密码.
在${user.home}\.m2 目录下创建 settings-security.xml文件.
比如C:\Users\Vito\.m2\settings-security.xml
2.生成MasterPassword
$mvn --encrypt-master-password $Password: (这里输入你指定的master明文密码) ${ESsDMOfmQu0HmKAcvsrCGnPQ+hBugnRhp+kFmEh5zj0=} (这是根据明文MasterPassword 计算的密码)
3.修改 settings-security.xml 内容
<?xml version="1.0" encoding="UTF-8"?> <settingsSecurity> <master>{OZ9T+teXD84HK2+/6JSe2DwruLTc9BaimAJLCIoNcNc=}</master> </settingsSecurity> <!--master password 明文 asdf , <master>标签内的是 步骤2. 生成的密码-->
4.生成 私服Repository密码
$mvn --encrypt-password
$Password: (输入你nexus私服对应Repository的密码)
${BRb43mpsn5EH1UOF0dYBkoUJccZDkzmO05p7ofNwuBU=}
5.修改本地{maven.home}\conf\settings.xml文件
<settings> <servers> ....... <server> <!--Nexus私服 发布仓库 的账户密码 --> <id>maven-releases</id> <username>admin</username> <!--这个密码就是用加密后的masterpassword加密的admin123--> <password>{BRb43mpsn5EH1UOF0dYBkoUJccZDkzmO05p7ofNwuBU=}</password> </server> <server> <!--Nexus私服 自己添加的第三方仓库的 的账户密码 --> <id>maven-3rd</id> <username>admin</username> <password>admin123</password> </server> ....... </servers> </settings>
到此 就可以安全地 链接nexus对应的Repository 进行download 构件或者deploy构件了.
Tips:
本方式的加密是完全基于本地的maven,算出密码并且配置两个本地配置文件的方式, 安全性其实并不完美.
针对于Nexus Repository OSS 版本的Nexus也只能如此 . (也就是免费版的私服)
如果有公司使用的是收费版Nexus Repository Pro版本,可以用更安全的方式, 本地settings.xml直接写nexus提供的密文.
详见:Nexus官方文档 http://books.sonatype.com/nexus-book/reference3/security.html#user-token
取部分截图贴上.
2017-04-12 12:18:44 添加
E-mail: vito27@aliyun.com
QQ : 303364991