【问题标题】:Not able to do maven release with jasypt encryption无法使用 jasypt 加密进行 maven 发布
【发布时间】:2019-05-08 06:57:17
【问题描述】:

我有一个由 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 密码?

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      基本上它声明了

      启用 jasypt-spring-boot 后,密码属性是必需的 如文档中所述

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

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

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

      运行你的 jar

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

      【讨论】:

      • 问题在于 Maven 发布插件如何获取配置参数。我已经发布了一个对我有用的答案。
      【解决方案3】:

      如果您使用 Intellij,

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

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

      如果这有帮助,请告诉我。

      谢谢,
      马努

      【讨论】:

        猜你喜欢
        • 2021-09-13
        • 2015-10-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多