Maven 환경 변수
프로젝트를 Eclipse에서 Maven으로 포팅했습니다.프로젝트를 실행하기 위해 환경변수를 설정할 필요가 있습니다.
Eclipse에서 "Run -> Run configurations"로 이동하여 "Environment" 탭에서 "WSNShEL_HOME"을 "conf" 값으로 설정합니다.
요?Maven
명령줄에 전달하면 됩니다.
mvn -DmyVariable=someValue install
[갱신] 파라미터의 순서는 중요합니다.명령어 앞에 옵션을 지정해야 합니다.[/업데이트]
파일POM에서 를 POM으로 지정할 수 있습니다.${myVariable}
및 환경변수는 다음과 같습니다.${env.myVariable}
(수정해 주신 코멘트 분들께 감사드립니다.)
갱신 2
시스템 변수를 테스트에 전달하려고 합니다.테스트에 Surefire 플러그인을 사용하는 경우, 가장 좋은 방법은 POM 내에서 필요한 시스템 변수를 지정하는 것입니다.plugins
:
<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>
-D
성질은 신뢰할 수 없습니다(일식과 함께 작동하는 이유를 알 수 없음).명령줄에서 maven을 사용할 경우 argLine 속성을 사용하여 속성을 래핑합니다.이것으로 테스트에 합격합니다.
mvn -DargLine="-DWSNSHELL_HOME=conf" test
System.getProperty
코드를 읽을 수 있습니다.의 차이에 대해 이 글을 봐주세요.System.getenv
★★★★★★★★★★★★★★★★★」Sytem.getProperty
.
maven 명령어는 bash 스크립트로 랩할 수 있습니다.
#!/bin/bash
export YOUR_VAR=thevalue
mvn test
unset YOUR_VAR
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#environmentVariables
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
...
<configuration>
<includes>
...
</includes>
<environmentVariables>
<WSNSHELL_HOME>conf</WSNSHELL_HOME>
</environmentVariables>
</configuration>
</plugin>
하나의 은 '보다 낫다'로 설정하는 입니다.MAVEN_OPTS
(''환경변수')${user.home}/.mavenrc
(오류)%HOME%\mavenrc_pre.bat
★★★★★★★★★★★★★★★★★★★★★」
Maven 3.3.1에서는 mvn 명령줄 파라미터를 설정할 수 있는 새로운 방법이 있습니다.이것이 실제로 필요한 경우:
${maven.projectBasedir}/.mvn/maven.config
${maven.projectBasedir}/.mvn/jvm.config
@Kevin의 답변에 따라 아래는 maven sure-fire 플러그인으로 환경변수를 설정하는 데 도움이 되었습니다.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<environmentVariables>
<WSNSHELL_HOME>conf</WSNSHELL_HOME>
</environmentVariables>
</configuration>
properties-maven-plugin이라는 maven 플러그인이 있습니다.이 플러그인은 목표를 제공합니다.set-system-properties
시스템 변수를 설정합니다.이러한 모든 속성을 포함하는 파일이 있는 경우 특히 유용합니다.따라서 속성 파일을 읽고 시스템 변수로 설정할 수 있습니다.
코드 추가:
System.getProperty("WSNSHELL_HOME")
maven 명령에서 값 속성을 수정하거나 추가합니다.
mvn clean test -DargLine=-DWSNSHELL_HOME=yourvalue
Eclipse에서 실행하려면 디버깅/실행 구성에 VM 인수를 추가합니다.
- 실행 -> 구성 실행으로 이동합니다.
- 탭 인수 선택
- VM 인수 추가 섹션
-DWSN셸_HOME=고객의 가치
POM을 변경할 필요가 없습니다.
일부 인수는 를 통해 전달할 수 있습니다._JAVA_OPTIONS
변수.
예를 들어 다음과 같은 메이븐프록시 플래그 변수를 정의합니다.
_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
).
저는 이 놀라운 도구의 사용을 제안합니다.프로젝트에 cd를 삽입하면 환경변수를 삽입할 수 있습니다.다음의 스텝이 유효했습니다.
.envrc 파일
source_up
dotenv
.env 파일
_JAVA_OPTIONS="-DYourEnvHere=123"
글로벌 Java 옵션을 변경하는 경우도 있기 때문에 _JAVA_OPTIONS를 정의하는 것은 좋지 않은 생각입니다.대신 Maven에 의해 자동으로 선택되지만 _JAVA_OPTS와 같은 모든 기능을 덮어쓰지는 않는 MAVEN_OPTS 환경 변수(예: IDE VM 옵션)를 정의합니다.
MAVEN_OPTS="-DmyVariable=someValue"
언급URL : https://stackoverflow.com/questions/5510690/environment-variable-with-maven
'programing' 카테고리의 다른 글
스프링 부트 속성 파일에서 암호를 숨기는 방법 (0) | 2022.09.03 |
---|---|
Jackson: 필드 직렬화를 방지하는 방법 (0) | 2022.09.03 |
왜 여기에 정수 리터럴을 넣어야 하는지 아세요? (0) | 2022.09.03 |
서브클래스는 개인 필드를 상속합니까? (0) | 2022.08.29 |
Vue.js : Vuex의 상태 속성 데이터는 얼마나 지속됩니까? (0) | 2022.08.29 |