我知道是possible to encrypt a password并将加密后的数据放入settings.xml
,以便 Maven 可以访问远程服务器(用于部署等)。
但是,就我而言,密码是第三方插件配置中的一个参数。
通常,pom.xml
此插件的配置如下所示:
<build>
<plugins>
<plugin>
<groupId>xxx</groupId>
<artifactId>maven-xxx-plugin</artifactId>
...
<configuration>
<serverAddress>http://myserver</serverAddress>
<port>4242</port>
<username>unicorn</username>
<password>thePassword</password>
...
但我不喜欢在
pom.xml
中以纯文本形式设置密码的想法。 .所以我尝试将其设置为属性( <password>${encrypted.password}</password>
)并在 settings.xml
中设置加密密码文件,使用 mvn --encrypt-password thePassword
命令:<profiles>
<profile>
<id>myprofile</id>
<properties>
<!-- Encrypted passwords -->
<encrypted.password>{dJXVRKwRiY8HqzhGecHd/MYju/aIEmMT8cnE6MY53uPNr0ro/CAsXSLlgzEjxYeU}</encrypted.password>
</properties>
不幸的是,这不起作用(我怀疑该插件使用加密的密码作为“清除”密码,并且没有尝试对其进行解密)。
有没有办法让它工作?如果没有,避免将纯文本密码放入
pom.xml
的替代方法是什么?或 settings.xml
?谢谢。
ps:我使用的是 Maven 2.2.1,但如果需要,我也可以使用 Maven 3.0。
最佳答案
Maven 提供了必要的支持来加密 settings.xml
中的密码,以及用于检索它们的插件。参见例如 SqlExecMojo.java .
插件“只是”必须使用此功能才能在凭据管理方面更加用户友好。
关于maven - 在 Maven pom 中使用加密数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12299181/