使用" secure" Travis * .yml文件中Maven测试命令中的变量

时间:2017-01-30 06:16:29

标签: java maven encryption travis-ci

所以我有一个.yml文件,其中包含" secure"我需要传递给mvn clean test命令的一些加密值的变量。

我有类似

的东西
language: java
jdk:
  - oraclejdk8
env:
  global:
    # Output of the command, 'travis encrypt MY_SECRET_KEY=super_secret'
    - secure: Q0LjGCaS2LIB0z1XH1Qx4uAmGgG9mIlsZAtdSGbgd4XwRbWM5zPxaRtoe5YJCt4zeAOu9+TYxpqa5kv5EyizY0zSC8dEZQu6Ur7jfre2FaJ9O0sSq72Cn2cTVVXTEQi+CPnaK/pki/NpDSN6Zt82n7ypgxZOInFT+BtcXDK8ok0=
script: # Did I pass the secured variable correctly in the maven clean test command?
  - mvn clean test -Denvironment=QA -DsecretKey=$MY_SECRET_KEY

我传递了我在原始" Travis加密"中使用的变量名称。命令。请看一下,我们应该如何传递加密的全局变量,以便在构建期间在maven clean test命令中设置其解密值?

1 个答案:

答案 0 :(得分:0)

您可以在maven pom.xml中评估环境变量

,而不是命令行中的设置秘密变量

请输入此变量的pom.xml定义

<properties>
    <secretKey>${env.MY_SECRET_KEY}</secretKey>
</properties>

一个缺点是当你没有设置MY_SECRET_KEY时,maven就不能解决这个问题。但您可以查看这个问题:How can I use a default value if an environment variable isn't set for resource filtering in maven?