我正在尝试在settings.xml中使用加密密码。我在我的pom.xml中有一个连接数据库的插件,使用sql-maven-plugin:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sql-maven-plugin</artifactId>
<version>1.4</version>
<dependencies>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.5.0</version>
</dependency>
</dependencies>
<configuration>
<driver>oracle.jdbc.driver.OracleDriver</driver>
<url>jdbc:oracle:thin:@ip.com:1521:SID</url>
<username>someUser</username>
<password>{JucQpWS78Q0HW+3ZS/FCCGHQpwbJ8ySl2Io/ILJqf88=}</password>
</configuration>
<executions>
<execution>
<id>update-configuration</id>
<phase>package</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<autocommit>false</autocommit>
<srcFiles>
<srcFile>src/main/sql/update_sim_configuration.sql</srcFile>
</srcFiles>
</configuration>
</execution>
</executions>
</plugin>
如果我将密码作为纯文本放在我的pom.xml中,哪个工作正常,我想从我的settings.xml读取此密码,密码以这种方式加密:
mvn -ep the_password
我在我的settings.xml中
...
<server>
<id>rms13-db-dev</id>
<username>user</username>
<password>{JucQpWS78Q0HW+3ZS/FCCGHQpwbJ8ySl2Io/ILJqf88=}</password>
</server>
...
我想阅读&#39;以某种方式解码密码&#39;来自&#39; rms13-db-dev&#39;,我该如何实现这一目标?或者如果您有替代版本来实现这一目标。
答案 0 :(得分:5)
为此,您需要Comparing versions, by counting controls,然后encrypt a password using Maven tools。插件版本1.4不支持此功能,但可以使用1.5。
使用命令
创建主密码mvn --encrypt-master-password
Maven将提示您输入自3.2.1以来的密码。完成后,使用内容
创建名为~/.m2/settings-security.xml
的文件
<settingsSecurity>
<master><!-- result of above command --></master>
</settingsSecurity>
使用
命令加密密码mvn --encrypt-password
与以前一样,Maven会提示您输入密码。然后在您的Maven设置(~/.m2/settings.xml
中,创建不存在的文件),获取内容
<settings>
...
<servers>
...
<server>
<id>my.server</id>
<username><!-- your DB username --></username>
<password><!-- the encrypted password --></password>
</server>
...
</servers>
...
</settings>
将sql-maven-plugin
与configure the sql-maven-plugin
to use it属性配置为您的服务器ID,在本例中为my.server
。您需要使用插件的1.5版。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sql-maven-plugin</artifactId>
<version>1.5</version> <!-- 1.5 required -->
<configuration>
<settingsKey>my.server</settingsKey> <!-- id of server here -->
<driver>oracle.jdbc.driver.OracleDriver</driver>
<url>jdbc:oracle:thin:@ip.com:1521:SID</url>
<!-- username and password are not mentioned anymore -->
</configuration>
</plugin>
如果任何加密密码包含花括号,settingsKey
有\{
和\}
。
答案 1 :(得分:1)
settingsKey
。server
条目id
等于上一个settingsKey
值。< / LI>