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