Maven在POM中使用加密密码

时间:2015-09-23 15:26:58

标签: maven

如何在pom.xml中使用加密密码和maven 3?

我有一些使用密码的pom对我们非常熟悉,例如我们将POM部署在Weblogic等应用程序服务器中或在数据库中运行Scripts,我们不喜欢只设置密码是

我已经拥有部署工件的主密码。

我在想是否有办法生成密码:

$ mvn --encrypt-password somepass
{wGpHaPO3nJ4HSKJa7qcMK9qjHAdwlvMrtjYjj8bwguI=}

之后我可以用这种方式在一些pom中使用它:

<configuration>
              <driver>oracle.jdbc.driver.OracleDriver</driver>
              <url>jdbc:oracle:thin:@ordbsdev.siman.com:1521:RMSDEV</url>
              <username>${siman.rms13.db.user}</username>
              <password>{wGpHaPO3nJ4HSKJa7qcMK9qjHAdwlvMrtjYjj8bwguI=}</password>
</configuration>

此外,我还要感谢另一种选择。

1 个答案:

答案 0 :(得分:3)

我认为Tunaki要求你做的是在settings.xml中定义一个属性,例如

<settings ...

  <profile>
    ...
    <properties>
      <xyz>{wGpHaPO3nJ4HSKJa7qcMK9qjHAdwlvMrtjYjj8bwguI=}</xyz>
    </properties>
  <profile>
</setting>

然后在POM中的设置中使用此属性:

<configuration>
  ...
  <password>${xyz}</password>
</configuration>

但是,阅读此配置的工具必须能够解密密码。

更好的方法是将加密密码与服务器配置一起存储在settings.xml中,如下所示:

<settings ...
  ...
  <servers>
    ...
    <server>
      <id>xyz</id>
      <username>manager</username>
      <password>{wGpHaPO3nJ4HSKJa7qcMK9qjHAdwlvMrtjYjj8bwguI=}</password>
    </server>
    ...
  </servers>
  ...
</setting>

但同样,配置信息的使用者必须能够读取服务器配置。在https://maven.apache.org/guides/mini/guide-encryption.html有一个Maven Deploy插件示例(例如-DrepositoryId = xyz)。

引用的问题列出了SqlExecMojo作为插件如何解密密码的示例。