2012-07-02 1 views
0

이 문제에 관해서는 SO question and answers이 좋지만 이러한 옵션은 제대로 작동하지 않습니다.Maven settings.xml 파일에서 응용 프로그램 컨텍스트로 속성 가져 오기

<bean class="blah.blah.Blah" id="blah"> 
    <property name="first" value="${first.property}"/> 
    <property name="second" value="${second.property}"/> 
</bean> 

나는 메이븐의 settings.xml 파일에 다음과 같은 한 :

내가 응용 프로그램 컨텍스트 변수를 전달하려면

<profiles> 
    <profile> 
     <id>profileId</id> 
     <activation> 
      <activeByDefault>true</activeByDefault> 
     </activation> 
     <properties> 
      <first.property>first value</first.property> 
      <second.property>second value</second.property> 
     </properties> 

내가 (약간 이상이다) this option 시도를, 그것을 준 결과가 없습니다. 나는이 플러그인을 추가하는 것보다 :

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>properties-maven-plugin</artifactId> 
    <version>1.0-alpha-2</version> 
    <executions> 
     <execution> 
     <phase>process-resources</phase> 
     <goals> 
      <goal>write-project-properties</goal> 
     </goals> 
     <configuration> 
      <outputFile> 
      src/main/resources/maven.properties 
      </outputFile> 
     </configuration> 
     </execution> 
    </executions> 
</plugin> 

을 그리고 프로젝트의 모든 maven.properties 파일은 이후 없었다. 빈 파일을 만들면 아무 것도 나타나지 않습니다. 그리고 -PprofileId으로 이러한 단계를 반복하려고 시도했지만 도움이되지 않았습니다. 누군가가 작동하는 코드 스 니펫을 제공하거나 내가 여기에서 무엇을 놓칠 수 있는지 말해 줄 수 있습니까? 미리 감사드립니다.

업데이트 : 내가 틀렸어 properties-maven-plugin이 잘 동작합니다.

+0

어디 applicationContext.xml 정확히'src/main/resources' 또는'src/main/java' 아래에 있습니까? – yorkw

+0

@yorkw src/main/resources 아래에 있습니다. 괜찮나요? –

답변

1

귀하의 질문에 명확하지 않습니다. 그러나 mvn -PprofileId resources:resources을 실행하면 명령이 Maven 생명주기 단계가 아닌 개별 목표를 실행하기 때문에 속성 플러그인이 실행되지 않습니다. mvn -PprofileId process-resources을 실행하면 어떻게됩니까?

다른 질문이 있습니까? 다른 프로필이 활성화되어 있습니까? activeByDefault은 "항상 활성"을 의미하지 않습니다. Per Maven docs "기본적으로 활성 상태 인 모든 프로필은 POM의 프로필이 명령 줄이나 활성화 설정을 통해 활성화 될 때 자동으로 비활성화됩니다." 따라서 다른 프로필이 활성화되어있는 경우 profileId 인 프로필은 활성화되지 않습니다.

해당 프로필에서 활성화 블록을 제거하고 mvn -PprofileId process-resources을 실행 해보십시오.

+0

답장을 보내 주셔서 감사합니다. 도움이되지 않았지만 모든 사항을 다시 확인하도록했습니다. Maven 속성 플러그인이 잘 작동합니다.이 글에 대해 작성해야한다고 생각합니다. 그런데 문제는 프로필에 있었지만 다른 곳에서는 문제가되었습니다. 또한 프로세스 리소스 단계의 목표이기 때문에 리소스에 대한 잘못된 설명이 될 수도 있습니다. 리소스 : http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html –

+0

올바른 '리소스 : 자원 '은 프로세스 자원 단계에 묶여있는 목표이다. 'mvn resources : resources'와'mvn process-resources' 사이에는 큰 차이가 있습니다. 첫 번째 명령은'resources : resources' 목표를 실행하고 그 외에는 아무것도 실행하지 않습니다. 목표가 다른 단계에 묶여 있다면 문제가되지 않으며 실행되지 않습니다. 두 번째 명령은'process-resources' 단계까지의 단계에 묶인 목표를 실행합니다. 그 차이는 미묘하지만 매우 중요합니다. '-X'로 두 명령을 모두 실행 해보고 실행 계획을 보면, 내가 무엇을 설명하는지 알 수있을 것이다. – user944849

+0

이제 고맙습니다. –

관련 문제