1

Я использую Maven 3.3.3 на Mac Yosemite с Java 8. Я определил переменную, JBOSS_HOME, в моем файле и т.д.// Профиль ...Почему Maven не распознает переменные окружения?

JBOSS_HOME=/opt/wildfly-10.0.0.CR2 

В моем терминале (с помощью Баш оболочки), I может видеть значение этой переменной ...

davea$ echo $JBOSS_HOME 
/opt/wildfly-10.0.0.CR2 

Однако, когда я бегу мой Maven скрипт (из той же оболочки), я не могу получить доступ к значению этой переменной. Ниже

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <version>1.8</version> 
    <dependencies> 
     <dependency> 
      <groupId>ant-contrib</groupId> 
      <artifactId>ant-contrib</artifactId> 
      <version>20020829</version> 
     </dependency> 
    </dependencies> 
    <executions> 
     <execution> 
      <id>create-dodeploy-file</id> 
      <phase>package</phase> 
      <configuration> 
       <target> 
        <taskdef resource="net/sf/antcontrib/antcontrib.properties" /> 
        <property environment="env" /> 
        <echo message="jboss home: ${env.JBOSS_HOME}" /> 

производит ...

[echo] jboss home: ${env.JBOSS_HOME} 

Что это дает? Как заставить Maven распознавать переменные среды?

+0

duplicate? http://stackoverflow.com/questions/8610980/checking-an-environment-variable-using-the-maven-antrun-plugin – vincent

ответ

0

Когда я добавил эту строку в верхней части моего ~/.profile файла

export JBOSS_HOME=$JBOSS_HOME 

Затем скрипт Maven взял переменное окружение , Интуитивно, а?

1

Вы должны удалить линию <property environment="env" />. Как определено в Ant documentation, это будет читать переменные системной среды (а не переменные пользовательской среды) и сохраняет их в свойствах с префиксом "env". Это скроет свойства ${env.*}, которые определяет Maven.

Таким образом, эта конфигурация будет работать:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <version>1.8</version> 
    <dependencies> 
     <dependency> 
      <groupId>ant-contrib</groupId> 
      <artifactId>ant-contrib</artifactId> 
      <version>20020829</version> 
     </dependency> 
    </dependencies> 
    <executions> 
     <execution> 
      <id>create-dodeploy-file</id> 
      <phase>package</phase> 
      <goals> 
       <goal>run</goal> 
      </goals> 
      <configuration> 
       <target> 
        <taskdef resource="net/sf/antcontrib/antcontrib.properties" /> 
        <echo message="jboss home: ${env.JBOSS_HOME}" /> 
       </target> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 
+0

Привет, я удалил строку '', но Maven все еще не подхватывая среду JBOSS_HOME. – Dave

+0

@Dave Хм, я просто протестировал это на своей машине Windows, и это сработало. Каков был ваш результат? – Tunaki

+0

На моем Mac выход был таким же, как и раньше, "[echo] jboss home: $ {env.JBOSS_HOME}" – Dave

Смежные вопросы