如何 release:perform 与 git 加密的文件
How to release:perform with git-crypted files
我使用 git-crypt (https://github.com/AGWA/git-crypt) 加密了一个包含敏感数据(密码等)的 属性 文件Java Maven 项目.
准备发布 运行 没有问题。
但是 "mvn release:perform" 的执行失败了 因为这个操作是自动化的:
- 从 SCM 签出发布标签
- 构建和部署发布的代码
问题是,我的 属性 文件是 加密签出的 ,因此某些集成测试的执行失败。
应该可以在 release:perform 过程中以某种方式自动解密我的文件。
我需要这样的解决方案:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<phase>deploy</phase>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>cmd</executable>
<arguments>
<argument>/c</argument>
<argument>git-crypt unlock my-unlock-keyfile</argument>
</arguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
<configuration>
<completionGoals>exec:exec</completionGoals>
</configuration>
</plugin>
</plugins>
</build>
但遗憾的是,此代码仅适用于准备发布。
我现在找到了可行的解决方案:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>cmd</executable>
<arguments>
<argument>/c</argument>
<argument>git-crypt unlock path\to\my-unlock-keyfile</argument>
</arguments>
<successCodes>
<successCode>0</successCode>
<successCode>1</successCode> <!-- while release preparation exit code 1 it thrown because of unsaved changes; this is only a workaround; -->
</successCodes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
</plugin>
</plugins>
</build>
我使用 git-crypt (https://github.com/AGWA/git-crypt) 加密了一个包含敏感数据(密码等)的 属性 文件Java Maven 项目.
准备发布 运行 没有问题。 但是 "mvn release:perform" 的执行失败了 因为这个操作是自动化的:
- 从 SCM 签出发布标签
- 构建和部署发布的代码
问题是,我的 属性 文件是 加密签出的 ,因此某些集成测试的执行失败。
应该可以在 release:perform 过程中以某种方式自动解密我的文件。
我需要这样的解决方案:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<phase>deploy</phase>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>cmd</executable>
<arguments>
<argument>/c</argument>
<argument>git-crypt unlock my-unlock-keyfile</argument>
</arguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
<configuration>
<completionGoals>exec:exec</completionGoals>
</configuration>
</plugin>
</plugins>
</build>
但遗憾的是,此代码仅适用于准备发布。
我现在找到了可行的解决方案:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>cmd</executable>
<arguments>
<argument>/c</argument>
<argument>git-crypt unlock path\to\my-unlock-keyfile</argument>
</arguments>
<successCodes>
<successCode>0</successCode>
<successCode>1</successCode> <!-- while release preparation exit code 1 it thrown because of unsaved changes; this is only a workaround; -->
</successCodes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
</plugin>
</plugins>
</build>