POM.xml에서 환경 변수를 참조하는 방법은 무엇입니까?
maven을 빌드 도구로 사용하고 있습니다. 라는 환경 변수를 설정했습니다 env
. pom.xml
파일 에서이 환경 변수의 값에 액세스하려면 어떻게 해야합니까?
Maven 속성 가이드를 확인하십시오 ...
의견에서 세 샤기 리가 지적했듯이 ${env.VARIABLE_NAME}
원하는 것을 할 것입니다.
경고 단어를 추가하고 pom.xml
프로젝트를 완전히 설명해야 한다고 말하면서 환경 변수를 신중하게 사용하십시오. 빌드를 환경에 의존하게 만들면 재현하기가 더 어렵습니다.
환경 변수를 maven 시스템 속성에 직접 전달하는 것이 더 안전 할 수 있습니다. 예를 들어 Linux에서는 환경 변수 MY_VARIABLE에 액세스하려고합니다. pom 파일에서 시스템 속성을 사용할 수 있습니다.
<properties>
...
<!-- Default value for my.variable can be defined here -->
<my.variable>foo</my.variable>
...
</properties>
...
<!-- Use my.variable -->
... ${my.variable} ...
maven 명령 행에서 특성 값을 설정하십시오.
mvn clean package -Dmy.variable=$MY_VARIABLE
또한 환경 변수 가 대문자로만 구성되어 있는지 확인하십시오 .... 이유는 모르겠습니다 (문서에 대해서는 @Andrew White가 제공 한 링크는 명시 적으로 말하지 않습니다). 변수는 소문자 단어 (예 : env.dummy)이며 변수는 항상 비어 있거나 null입니다 ...
나는 대문자와 같은 변수를 시도하기로 결정하고 문제가 해결 될 때까지 한 시간처럼 이것으로 어려움을 겪고있었습니다.
OK 변수 예 :
- 가짜의
- DUMMY_ONE
- JBOSS_SERVER_PATH
( 참고 : maven v3.0.5를 사용하고있었습니다)
나는 이것이 누군가를 도울 수 있기를 바랍니다 ....
우리는 사용할 수 없습니다
<properties>
<my.variable>${env.MY_VARIABLE}</my.variable>
</properties>
나는 똑같은 문제로 변수를 설정하는 쉘 스크립트를 실행 한 다음 shared-pom에서 변수를 사용하려고했습니다. com.google.code.maven-replacer-plugin을 사용하여 프로젝트 파일의 환경 변수를 문자열로 바꾸는 것이 목표였습니다.
나를 사용 ${env.foo}
하거나 ${env.FOO}
작동하지 않았습니다. 메이븐은 변수를 찾지 못했습니다. 작동 한 것은 Maven에서 변수를 명령 줄 매개 변수로 전달하는 것입니다. 설정은 다음과 같습니다.
쉘 스크립트에서 변수를 설정하십시오. 하위 스크립트에서 Maven을 시작하는 경우 변수가 설정되어 있는지 확인하십시오 (예 :
source ./maven_script.sh
상위 스크립트에서 변수 를 호출하는 데 사용) .shared-pom에서 환경 변수를 가져 오는 명령 줄 매개 변수를 만듭니다.
<플러그인> ... <실행> <실행> ... <실행> ... <구성> <param> $ {foo} </ param> <!-* not * $ {env.foo}->입니다. </ configuration>
com.google.code.maven-replacer-plugin에서 교체 값을 확인하십시오
${foo}
.maven을 호출하는 쉘 스크립트에서 다음을 명령에 추가하십시오.
-Dfoo=$foo
참고 URL : https://stackoverflow.com/questions/10463077/how-to-refer-environment-variable-in-pom-xml
'IT story' 카테고리의 다른 글
objective-c에서 YES / NO, TRUE / FALSE와 true / false 사이에 차이가 있습니까? (0) | 2020.06.11 |
---|---|
클래스 메소드에서 property () 사용 (0) | 2020.06.11 |
jQuery show () 함수에 display : inline-block을 추가하는 방법은 무엇입니까? (0) | 2020.06.11 |
Android Studio의 여러 인스턴스를 실행하는 방법 (0) | 2020.06.11 |
파이썬에서 최대 플로트는 무엇입니까? (0) | 2020.06.11 |