Подтвердить что ты не робот

Как настроить переменную среды в mvn pom?

Как настроить переменную среды (другими словами, внутренне доступную через System.getenv("APP_HOME") в файле pom?

APP_HOME=/path/home

Я понимаю, что могу настроить его в .profile, но задаюсь вопросом, может ли pom сделать тот же трюк.

В предложении bmargulies ниже я пробовал следующее, не повезло

<build>
    <finalName>KvpStore</finalName>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.12.4</version>
            <configuration>
                <includes>
                    <include>**/*Test*.java</include>
                </includes>
                <environmentVariables>
                    <APP_NAME>blah_blah</APP_NAME>  <------------------------
                </environmentVariables>
            </configuration>
        </plugin>
    </plugins>
</build>
4b9b3361

Ответ 1

Документация файла maven-surefire-plugin показывает примеры и описывает, как делать такие вещи при настройке свойств системы.

<configuration>
  <systemPropertyVariables>
    <propertyName>propertyValue</propertyName>
    <buildDirectory>${project.build.directory}</buildDirectory>
    [...]
  </systemPropertyVariables>
</configuration>

Лучше использовать их вместо переменной окружения, поэтому проще использовать их, вызывать переменную env, необходимую для правильной настройки, и cmd.exe, а jvm необходимо перезапустить, чтобы заставить их работать.

Нет необходимости настраивать включения для тестов, вызывать maven-surefire-plugin уже следующие значения по умолчанию:

<includes>
 <include>**/Test*.java</include>
 <include>**/*Test.java</include>
 <include>**/*TestCase.java</include>
</includes>

Ответ 2

Некоторые плагины, такие как surefire, позволяют вам устанавливать их. В общем-то, вообще-то, в помпе нет.

Документ для уверенности здесь здесь. Surefire будет устанавливать переменные среды на время выполнения тестов, а не на что-либо еще. И вы должны сделать верную вилку.

В конфигурации...

<configuration>
  <forkMode>always</forkMode>
  <environmentVariables>
     <var1>val1</var1>
  </environmentVariables>
</configuration>