mvn install时执行单元测试时添加自定义环境变量(jasypt为例)

1. 背景

最近在做单元测试覆盖,考虑到安全角度,于是对项目中所有的密码进行了jasypt加密,其中有一个关键参数盐值,不能放在配置文件(说是把盐值一起放到配置文件,那加密就没有了意义),平时启动项目都是将盐值放到idea的启动参数上,但是由于在maven打包时,因为要计算单元测试覆盖率,不能跳过单元测试,而mvn install -maven.skip.test=false命令无法读取idea的启动参数(即jasypt盐值),于是乎执行单元测试的时候由于读取不到盐值导致启动springboot失败,进而导致单元测试全部error了。

2. 目的

如何在不需要在配置文件中添加盐值的基础上,让springboot test类能够正常读取到盐值并正常启动。

3. 解决方法

在执行命令上添加启动参数,具体命令如下:mvn clean install -maven.skip.test=false -Djasypt.encryptor.password=1278sjkjwu,其中password等于号后面的即为对应的盐值,这样子就能够正常的启动并执行单元测试了

4.相关知识扩展

maven打包时,如果有一些变量在多个地方使用,可以使用-D的方式或者properties的方式。
使用-D的方式或者properties的方式定义的变量,在Dockfile或者shell脚本或者pom中都可以被动态的替换为期望的值。
详情查看maven 打包时自定义变量的使用

你可能感兴趣的:(Java,maven,单元测试,junit,java,jasypt,maven)