5 ответов:
Проверьте Руководство По Свойствам Maven...
Как указал Сешагири в комментариях,
${env.VARIABLE_NAME}будет делать то, что вы хотите.Я добавлю слово предупреждения и скажу, что a
pom.xmlдолжен полностью описать ваш проект, поэтому, пожалуйста, используйте переменные среды разумно. Если вы делаете свои сборки зависимыми от вашей среды, их труднее воспроизвести
было бы безопаснее напрямую передавать переменные среды в системные свойства maven. Например, скажем, в Linux вы хотите получить доступ к переменной среды MY_VARIABLE. Вы можете использовать системное свойство в файл POM.
<properties> ... <!-- Default value for my.variable can be defined here --> <my.variable>foo</my.variable> ... </properties> ... <!-- Use my.variable --> ... ${my.variable} ...установите значение свойства в командной строке maven:
mvn clean package -Dmy.variable=$MY_VARIABLE
кроме того, убедитесь, что ваш переменные среды и состоит только из прописных букв.... Я не знаю, почему (в документации ничего не говорится об этом, по крайней мере, ссылка, предоставленная @Andrew White), но если переменная является строчным словом (например, env.dummy), переменная всегда приходила пустой или нулевой...
Я боролся с этим, как час, пока я не решил попробовать переменную верхнего регистра, и проблема решена.
ОК Переменные Примеры:
- пустышка
- DUMMY_ONE
- JBOSS_SERVER_PATH
(Примечание: я использовал maven v3.0. 5)
Я надеюсь, что это может помочь кому-то....
я боролся с тем же самым, запустив сценарий оболочки, который устанавливает переменные, а затем хочет использовать переменные в shared-pom. Цель состояла в том, чтобы переменные среды заменяли строки в моих файлах проекта с помощью com.гуглить.код.maven-replacer-плагин.
используя
${env.foo}или${env.FOO}не работает для меня. Мэйвен просто не находил переменную. То, что работало, передавало переменную в качестве параметра командной строки в Maven. Вот настройка:
установите переменную в сценарии оболочки. Если вы запускаете Maven в суб-скрипт, убедитесь, что переменная становится набор, например, с помощью
source ./maven_script.shчтобы вызвать его из родительского скрипта.в shared-pom создайте параметр командной строки, который захватывает переменную среды:
<plugin> ... <executions> <executions> ... <execution> ... <configuration> <param>${foo}</param> <!-- Note this is *not* ${env.foo} --> </configuration>
в com.гуглить.код.maven-replacer-плагин, сделать значение замены
${foo}.в моем сценарии оболочки, который вызывает maven, добавьте это в команду:
-Dfoo=$foo
Comments