maven - 在 Maven pom 中使用加密数据

标签 maven

我知道是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/

相关文章:

java - 从 jar 文件执行 Flyway 迁移

eclipse - Maven 与 Eclipse 3.5 集成的分步过程

java - jar 冲突版本公共(public)配置

java - 无法在 Heroku 上使用 Java 驱动程序连接 MongoDB

java - Selenium Java 立即处理对象(警报对话框)异常。 (不可预测的Java弹出窗口)

eclipse - Eclipse 的 Run As > Maven Package 去哪里了?

maven - 使用浏览器/wget 从 Nexus OSS 3.0.0-03 下载 Artifact

java - 缺少 "eclipse-plugin"打包选项

c++ - 包括来自预建库 Android.mk 的头文件

java - 将 Maven 项目部署到 Tomcat 无法连接到 Postgres