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

时间:2019-05-08 06:57:18

标签: java maven spring-boot maven-release-plugin jasypt

我有一个由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}

对于这两种情况,在运行测试用例时都会出现以下错误。

  

原因:java.lang.IllegalStateException:必需的加密配置属性丢失: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密码?

2 个答案:

答案 0 :(得分:0)

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

基本上说

  

一旦启用jasypt-spring-boot,则需要password属性   根据文档中的说明

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

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

另一个(如果从命令行运行),请使用

运行您的jar

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

答案 1 :(得分:0)

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

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