Я использую Maven в качестве инструмента для сборки. Я установил переменную среды с именем env
. Как я могу получить доступ к значению этой переменной среды в pom.xml
файле?
java
maven
environment-variables
pom.xml
user1016403
источник
источник
${env.XYZ}
ссылку красным цветом. Переменная корректно раскрывается во время выполнения, но отображается красным цветом во время компиляции. Поэтому у меня тот же вопрос, который был задан изначально.Ответы:
Проверьте Maven Руководство по свойствам ...
Как отметил Сешагири в комментариях,
${env.VARIABLE_NAME}
будет делать то, что вы хотите.Я добавлю слово предупреждения и скажу, что
pom.xml
должен полностью описать ваш проект, поэтому, пожалуйста, используйте переменные среды разумно. Если вы делаете свои сборки зависимыми от вашей среды, их труднее воспроизвестиисточник
Может быть безопаснее напрямую передавать переменные окружения в системные свойства maven. Например, скажем, в Linux вы хотите получить доступ к переменной окружения MY_VARIABLE. Вы можете использовать системное свойство в вашем файле pom.
Установите значение свойства в командной строке maven:
источник
Кроме того , убедитесь , что ваша переменная окружения будет состоять только заглавные буквы .... Я не знаю , почему (документация не говорит ничего явного об этом, по крайней мере , связь обеспечивается White @ Андрей), но если переменная является словом нижнего регистра (например, env.dummy), переменная всегда была пустой или нулевой ...
Я боролся с этим, как час, пока я не решил попробовать переменную UPPER CASE, и проблема решилась.
OK Переменные Примеры:
( ПРИМЕЧАНИЕ : я использовал maven v3.0.5)
Надеюсь, что это может кому-то помочь ....
источник
Разве мы не можем использовать
источник
Я боролся с тем же, запустив скрипт оболочки, который устанавливает переменные, а затем захотел использовать переменные в shared-pom. Цель состояла в том, чтобы переменные среды заменили строки в файлах моего проекта с помощью com.google.code.maven-replacer-plugin.
Использование
${env.foo}
или${env.FOO}
не работает для меня. Мейвен просто не нашел переменную. То, что работало, передавало переменную в качестве параметра командной строки в Maven. Вот настройки:Установите переменную в сценарии оболочки. Если вы запускаете Maven с помощью вспомогательного сценария, убедитесь, что переменная установлена, например, используется
source ./maven_script.sh
для вызова из родительского сценария.В shared-pom создайте параметр командной строки, который получает переменную среды:
В com.google.code.maven-replacer-plugin введите значение замены
${foo}
.В моем сценарии оболочки, который вызывает maven, добавьте это в команду:
-Dfoo=$foo
источник
Вы можете использовать
<properties>
тег, чтобы определить пользовательскую переменную и${variable}
шаблон, чтобы использовать егоисточник