在Maven pom中使用加密数据

Rom*_*las 12 maven

我知道可以加密密码并将加密数据放入其中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>
                ...
Run Code Online (Sandbox Code Playgroud)

但是我不喜欢在我的文本中用纯文本设置密码的想法pom.xml.所以我尝试将它设置为property(<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>
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不起作用(我怀疑该插件使用加密密码作为"清除"密码,并不试图解密它).

有没有办法让它发挥作用?如果没有,有什么方法可以避免将纯文本密码放入pom.xmlsettings.xml

谢谢.

ps:我正在使用Maven 2.2.1,但如果需要,我也可以使用Maven 3.0.

小智 3

Maven 提供了必要的支持来加密密码settings.xml,并让插件检索它们。例如,请参见SqlExecMojo.java

插件“只是”必须使用此功能来使凭据管理更加用户友好。

  • 现在,如果我想使用该加密项目作为资源过滤的一部分而不是在插件中,该怎么办? (2认同)