2017-01-30 7 views
0

У меня есть файл .yml, содержащий «защищенные» переменные некоторых зашифрованных значений, которые мне нужно передать в команду mvn clean test.Использование «безопасных» переменных в тестовой команде Maven в файле Travis * .yml

У меня есть что-то вроде

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 во время сборки?

+0

Я ничего не знаю о специфике maven, но в остальном, да, вы использовали это как предназначено. – renemilk

ответ

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?