2016-06-03 4 views
0

.java 클래스로 그 값을 전달하고 메이븐 명령 줄에 난 그냥 같은 실행됩니다 즉 id, password, account#이 포함됩니다 예를 <id = env>에 대한 두 메이븐 프로파일을 사용할 수있는 방법은 자바 클래스에서 사용 :이 개 프로파일을 작성하고

mvn test ${env=stage} 

과 소요 내가 선택한 프로필에서 id, password, account#. 아니면 프로파일을 사용하지 않는 다른 방법이있을 수 있습니까?

+0

https://github.com/khmarbaise/multienv-maven-plugin – khmarbaise

답변

0

일반적으로 Maven에서 properties을 선언 할 수 있습니다. 당신은 다른 방법을 설정할 수 있습니다

  • 명령 행하십시오 POM 또는 settings.xml에서 <properties> 섹션에서

    mvn ... -DmyProperty=myValue 
    
  • 을 (후자의 <profile> 섹션에서만) 같은 :

    <profile> 
        <id>stage</id> 
    
        <properties> 
        <user>you</user> 
        <password>your</password> 
        <accountNo>42</accountNo> 
        </properties> 
    <profile> 
    

명령 줄에서 프로필을 활성화하십시오. H :

mvn ... -Pstage ... 

Maven, Introduction to Build Profiles 또는 문서에 기술 된 다른 활성화 메카니즘 중 하나를 사용한다.

${user}, ${password}, ${accountNo}으로 POM의 속성을 사용하십시오.

+0

'$ {user}, $ {password}, ​​$ {accountNo}에서 POM의 속성을 사용하십시오. '그 후에 .java 클래스에서 그 값들을 어떻게 사용할 수 있습니까? 다음과 같이해야합니다 :'String id = $ {user}'또는이 id를 속성 파일에 넣고 Java 클래스 호출에 넣어야합니까? –

+0

@IlyaG 클래스 나 외부 속성 파일에 하드 코딩해야하는지 여부에 따라 다릅니다. 후자는 평소입니다. Maven에는 [_Resource Filtering_] (https://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html)라는 메커니즘이 있습니다. (나쁜 이름 인 IMHO입니다. 필터를 사용하면 _ Resource Interpolation_이 더 적절할 것입니다.) [Maven의 소스 코드 필터링하기] (http://stackoverflow.com/questions/4106171/filtering-source-code-in-maven)도 참고하십시오. –