Переменная среды с Maven

Я портировал проект из Eclipse в Maven, и мне нужно установить переменную среды, чтобы мой проект работал.

В Eclipse я перехожу к «Run -> Run configurations», и под вкладкой «environment» я установил «WSNSHELL_HOME» в значение «conf».

Как я могу это сделать с Maven?

Большое спасибо!

Вы можете просто передать его в командной строке, так как

mvn -DmyVariable=someValue install 

[Обновить] Обратите внимание, что порядок параметров значителен – вам нужно указать любые параметры перед командами. [/Обновить]

В файле POM вы можете ссылаться на системные переменные (указанные в командной строке или в pom) как ${myVariable} и переменные среды как ${env.myVariable} . (Спасибо комментаторам за исправление).

Update2

ОК, поэтому вы хотите передать свою системную переменную в свои тесты. Если, как я полагаю, вы используете плагин Surefire для тестирования, лучше всего указать необходимые системные переменные (ы) внутри pom в разделе ваших plugins , например

   ...  org.apache.maven.plugins maven-surefire-plugin ...  ...  conf    ...   

Свойства -D не будут надежно распространяться от верного плагина до вашего теста (я не знаю, почему он работает с eclipse). При использовании maven в командной строке используйте свойство argLine для обертывания вашего свойства. Это передаст их вашему тесту

 mvn -DargLine="-DWSNSHELL_HOME=conf" test 

Используйте System.getProperty для чтения значения в вашем коде. Взгляните на этот пост о различии System.getenv и Sytem.getProperty .

Существует плагин maven, называемый свойствами-maven-plugin, который предоставляет целевые свойства set-system-properties для установки системных переменных. Это особенно полезно, если у вас есть файл, содержащий все эти свойства. Таким образом, вы можете прочитать файл свойств и установить их как системную переменную.

Другим решением было бы установить MAVEN_OPTS (или другие переменные среды) в ${user.home}/.mavenrc (или %HOME%\mavenrc_pre.bat на windowsх).

Поскольку Maven 3.3.1 есть новые возможности для установки параметров командной строки mvn , если это то, что вы действительно хотите:

  • ${maven.projectBasedir}/.mvn/maven.config
  • ${maven.projectBasedir}/.mvn/jvm.config

Вы можете обернуть команду maven в сценарий bash:

 #!/bin/bash export YOUR_VAR=thevalue mvn test unset YOUR_VAR 
  • java.lang.OutOfMemoryError: пространство кучи Java в Maven
  • Maven не правильно выбирает JAVA_HOME
  • В этой среде компилятор не предоставляется. Возможно, вы работаете на JRE, а не на JDK?
  • Преобразование ivy.xml в pom.xml
  • Как добавить дополнительный исходный каталог для maven для компиляции и включения в сборку jar?
  • Установка Maven на Mac OS X
  • Проект Maven с JavaFX (с файлом jar в `lib`)
  • Spring Boot - родительский pom, когда у вас уже есть родительский pom
  • Исключение в streamе «main» java.lang.NoClassDefFoundError: org / openqa / selenium / WebDriver
  • java.lang.NoClassDefFoundError: org / apache / spark / streaming / twitter / TwitterUtils $ во время работы TwitterPopularTags
  • Как исключить модуль из сборки реактора Maven?
  • Interesting Posts

    Куки-файлы на локальном хосте с явным доменом

    Рассчитать разницу во времени в Excel 2003

    Должен ли я использовать свойства или прямую ссылку при доступе к переменным экземпляра внутри?

    Весна: @ Компонент против @Bean

    Программное обеспечение для мониторинга использования ЦП и использования ОЗУ процесса?

    #pragma pack effect

    Как избежать «ConcurrentModificationException» при удалении элементов из «ArrayList» при его повторении?

    Как и где используются annotations, используемые в Java?

    Как использовать намерение для выбора файлового браузера для выбора файла

    Странное предупреждение компилятора C: предупреждение: «struct» объявлен в списке параметров

    Таймер WPF Как таймер C #

    Как определить мой фактический внешний IP-адрес через командную строку Windows во время VPN

    Как получить путь к текущему скрипту с помощью Node.js?

    Определите, какой JAR-файл является classом из

    Каков «лучший» способ делать распределенные транзакции в нескольких базах данных с использованием Spring и Hibernate

    Давайте будем гением компьютера.