如何在maven的settings.xml中保护服务器/代理设置?
我认为这主要是关于存储在那里的登录和密码,我认为那些不能放置在那里明确,如果它们存储在env变量/ etc中?
安全settings.xml的示例应如何显示?
答案 0 :(得分:2)
您有两个选择:
1)如果您只需要在settings.xml中使用:
执行:
mvn --encrypt-password <password>
您将获得如下加密密码:
{COQLCE6DU6GtcS5P=}
您可以在settings.xml中使用此密码:
<settings>
...
<servers>
...
<server>
<id>my.server</id>
<username>foo</username>
<password>{COQLCE6DU6GtcS5P=}</password>
</server>
...
</servers>
...
</settings>
2)如果您需要多次使用:
执行:
mvn --encrypt-master-password <password>
哟会得到这样的加密密码:
{jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=}
将此密码存储在 $ {user.home} /。m2 / settings-security.xml 中,它应如下所示:
<settingsSecurity>
<master>{jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=}</master>
</settingsSecurity>
答案 1 :(得分:1)
如果settings.xml
已共享(也许是&#39;团队&#39;文件,也许它位于共享版本/ CI框中),那么其中的敏感信息 - 特别是密码 - 可以(应 :)加密。
创建主密码:
mvn --encrypt-master-password <password>
将主密码添加到settings-security.xml
加密密码
mvn --encrypt-password <password>
将加密值添加到settings.xml
更多详情in the docs。