Eclipse에서 Maven으로 프로젝트를 포팅했으며 프로젝트가 작동하도록 환경 변수를 설정해야합니다.
Eclipse에서 "실행-> 구성 실행"으로 이동하고 "환경"탭에서 "WSNSHELL_HOME"을 "conf"값으로 설정합니다.
Maven으로 어떻게 할 수 있습니까?
대단히 감사합니다!
Eclipse에서 Maven으로 프로젝트를 포팅했으며 프로젝트가 작동하도록 환경 변수를 설정해야합니다.
Eclipse에서 "실행-> 구성 실행"으로 이동하고 "환경"탭에서 "WSNSHELL_HOME"을 "conf"값으로 설정합니다.
Maven으로 어떻게 할 수 있습니까?
대단히 감사합니다!
답변:
명령 줄에서 다음과 같이 전달할 수 있습니다.
mvn -DmyVariable=someValue install
[업데이트] 매개 변수의 순서는 중요 합니다. 명령 전에 옵션을 지정해야합니다 . [/최신 정보]
POM 파일 내에서 시스템 변수 (명령 줄 또는 pom에 지정됨)를로 참조 ${myVariable}
하고 환경 변수를 ${env.myVariable}
. (수정에 대한 댓글 작성자에게 감사드립니다.)
좋습니다. 시스템 변수를 테스트에 전달하려고합니다. 내가 가정 했듯이 테스트를 위해 Surefire 플러그인 을 사용하는 경우 가장 좋은 방법은 plugins
섹션 에서 필요한 시스템 변수를 pom 내에서 지정하는 것입니다.
<build>
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
...
<configuration>
...
<systemPropertyVariables>
<WSNSHELL_HOME>conf</WSNSHELL_HOME>
</systemPropertyVariables>
</configuration>
</plugin>
...
</plugins>
</build>
mvn -DWSNSHELL_HOME=conf test
.
System.getenv("WSNSHELL_HOME");
습니다. 맞습니까?
${argLine}
자리 표시자를 추가합니다 . 그렇지 않으면 명령 줄의 매개 변수가 선택되지 않습니다. 예 :<argLine>-Duser.timezone=UTC ${argLine}</argLine>
bash 스크립트에서 maven 명령을 래핑 할 수 있습니다.
#!/bin/bash
export YOUR_VAR=thevalue
mvn test
unset YOUR_VAR
mvn install
, 그래도 여전히 가려져 있습니다. 그러나 쉘 스크립트에서 실행하면 잘 작동합니다! 왜 이런 일이 발생하는지 이해했으면합니다.
Maven의 환경 변수는 아래와 같이 설정할 수 있습니다.
http://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#environmentVariables http://maven.apache.org/surefire/maven-failsafe-plugin/integration-test-mojo.html #환경 변수
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
...
<configuration>
<includes>
...
</includes>
<environmentVariables>
<WSNSHELL_HOME>conf</WSNSHELL_HOME>
</environmentVariables>
</configuration>
</plugin>
properties-maven- plugin이라는 maven 플러그인 이 있는데 이것은 set-system-properties
시스템 변수를 설정 하는 목표 를 제공 합니다. 이러한 속성이 모두 포함 된 파일이있는 경우 특히 유용합니다. 따라서 속성 파일을 읽고 시스템 변수로 설정할 수 있습니다.
또 다른 해결책은 (또는 창) MAVEN_OPTS
에서 ${user.home}/.mavenrc
(또는 다른 환경 변수) 를 설정하는 것 %HOME%\mavenrc_pre.bat
입니다.
Maven 3.3.1부터 실제로 원하는 경우 mvn 명령 줄 매개 변수를 설정할 수 있는 새로운 가능성 이 있습니다.
${maven.projectBasedir}/.mvn/maven.config
${maven.projectBasedir}/.mvn/jvm.config
코드에 다음을 추가하십시오.
System.getProperty("WSNSHELL_HOME")
maven 명령에서 값 속성을 수정하거나 추가합니다.
mvn clean test -DargLine=-DWSNSHELL_HOME=yourvalue
Eclipse에서 실행하려면 디버그 / 실행 구성에 VM 인수를 추가하십시오.
-DWSNSHELL_HOME = 귀하의 가치
POM을 수정할 필요가 없습니다.
_JAVA_OPTIONS
변수를 통해 일부 인수를 전달할 수 있습니다 .
예를 들어 다음과 같이 maven 프록시 플래그에 대한 변수를 정의합니다.
_JAVA_OPTIONS="-Dhttp.proxyHost=$http_proxy_host -Dhttp.proxyPort=$http_proxy_port -Dhttps.proxyHost=$https_proxy_host -Dhttps.proxyPort=$http_proxy_port"
그런 다음 사용하십시오 mvn clean install
(자동으로 선택됩니다 _JAVA_OPTIONS
).