无法使用 jasypt 加密进行 Maven 发布

Not able to do maven release with jasypt encryption

我有一个由 maven 处理的 Springboot 项目,其中包含一些用 Jasypt 加密的秘密。当我 运行 设置 mvn deploy 时,我将 jasypt 密码传递为:

mvn -B clean deploy -Djasypt.encryptor.password=${jasypt_password}

它能够 运行 测试用例并将 jar 文件部署到存储库。但是当我对 mvn release 做同样的事情时,jasypt 密码设置不正确。

mvn -B clean release:prepare release:perform -Djasypt.encryptor.password=${jasypt_password}

或者

mvn -B release:prepare -Djasypt.encryptor.password=${jasypt_password}

对于这两种情况,我在 运行测试用例时遇到以下错误。

Caused by: java.lang.IllegalStateException: Required Encryption configuration property missing: jasypt.encryptor.password

我使用的插件配置是:

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-release-plugin</artifactId>
        <version>2.5.3</version>
        <configuration>
            <localCheckout>true</localCheckout>
        </configuration>
</plugin>

我应该如何在 运行 发布 maven 版本时设置 jasypt 密码?

您可以查看 this link,其中提供了有关该问题的更多详细信息。

基本上它说

Once you enable jasypt-spring-boot the password property is required as specified in the documentation

他们提出了多种解决方案。其中之一是:

jasypt.encryptor.password=dummy 添加到您的 springboot 属性文件。

还有一个(如果从命令行 运行ning),运行 你的罐子

-Djasypt.encryptor.password=*******************

我使用以下命令解决了问题。显然 maven 发布插件以不同的方式获取配置参数。

mvn -B clean release:prepare release:perform -Darguments="-Djasypt.encryptor.password=${jasypt_password}"

如果您使用的是 Intellij,

正在使用 -Djasypt.encryptor.password=${jasypt_password} 作为项目参数应该可以解决您的问题。

如果没有帮助,请尝试 --jasypt.encryptor.password=${jasypt_password}.

如果有帮助请告诉我。

谢谢,
马努