Как ссылаться на переменную среды в POM.xml?

Я использую Maven в качестве инструмента для сборки. Я установил переменную среды с именемenv. Как я могу получить доступ к значению этой переменной среды вpom.xml файл

Ответы на вопрос(5)

запустив скрипт оболочки, который устанавливает переменные, а затем захотел использовать переменные в shared-pom. Цель состояла в том, чтобы переменные среды заменили строки в файлах моего проекта с помощью com.google.code.maven-replacer-plugin.

С помощью${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.google.code.maven-replacer-plugin укажите значение замены${foo}.

В моем сценарии оболочки, который вызывает maven, добавьте это в команду:-Dfoo=$foo

Maven Properties Guide ...

Как Сешагири указал в комментариях,${env.VARIABLE_NAME} будет делать то, что ты хочешь.

Я добавлю слово предупреждения и скажу, чтоpom.xml должен полностью описать ваш проект, поэтому, пожалуйста, используйте переменные среды разумно. Если ваши сборки зависят от вашей среды, их будет труднее воспроизвест

переменная окружения является составлено только в верхнем регист .... я не знаю почему (в документации ничего не сказано об этом, по крайней мере, ссылка, предоставленная @Andrew White), но если переменная является словом в нижнем регистре (например, env.dummy), переменная всегда была пустой или нулевой ...

я боролся с этим около часа, пока я не решил попробовать переменную UPPER CASE, и проблема решилась.

OK Примеры переменных:

DUMMY DUMMY_ONE JBOSS_SERVER_PATH

(НОТ: Я использовал maven v3.0.5)

Надеюсь, это кому-нибудь поможет ...

мные свойства 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

Разве мы не можем использовать

<properties>
    <my.variable>${env.MY_VARIABLE}</my.variable>
</properties>

ВАШ ОТВЕТ НА ВОПРОС