在Maven的settings.xml中,往往要配置访问远程库所在的服务器的username/password。但是明文的密码总是显得那么扎眼,必欲除之而后快。
Apache Maven项目提供了便捷的密码加密机制,该机制的最近更新时间为2018-03-06。
该机制目前只支持在命令行下的操作,如生成密码的密文。
此外,用户还需要在${user.home}/.m2目录下配置settings-security.xml文件,其中包含:- 用以加密其他密码的master password(此处也是密文)
- 或指向另一个保密文件的完整路径
在该加密机制中有两个概念,一个是master password,即用以加密其他密码的密码,另一个就是实际使用的服务器访问密码password。master password的密文配置在settings-security.xml文件中,而服务器访问密码password的密文就可以大大方方地配置在settings.xml中。具体用法如下:
1. 生成Master password的密文
命令行中执行如下命令:
mvn --encrypt-master-password
根据提示输入Master password:
就可以生成密文{iENT44//TgwH46wJQ0Go3et0u9PRZivf7LcAA9mY4LA=}
2. 配置${user.home}/.m2/settings-security.xml文件
<settingsSecurity>
<master>{iENT44//TgwH46wJQ0Go3et0u9PRZivf7LcAA9mY4LA=}</master>
</settingsSecurity>
如果settings-security.xml文件被保存到U盘,则配置${user.home}/.m2/settings-security.xml文件如下:
<settingsSecurity>
<master>/my_u_volume/my_path/settings-security.xml</master>
</settingsSecurity>
3. 加密访问服务器的密码
命令行中执行如下命令:
mvn --encrypt-password
根据提示输入Password:
就可以生成密文{rZhmW6UmQw0HhRTeqSBchuMAgAoH6owP/hJjV3a/9Eg=}
4. 配置settings.xml文件
<server>
<id>my.server</id>
<username>myfoo</username>
<password>add_any_comment or {{rZhmW6UmQw0HhRTeqSBchuMAgAoH6owP/hJjV3a/9Eg=}} add_any_comment</password>
</server>
http://maven.apache.org/guides/mini/guide-encryption.html