2012-06-21 3 views
3

web.xml 파일에 다음과 같은 내용이 있다고 가정 해 봅니다.web.xml에서 하드 코드 된 값을 제거하는 방법

<filter name="foo"> 
    <init-param> 
    <param-name>fooBarUrl</param-name> 
    <param-value>http://foo.bar.com</param-value> 
    </init-param> 
</filter> 

dev/test/production에는 다른 url 값 (위의 param-value)이 있다고 가정 해보십시오. pom에서 필터 및/또는 프로파일을 사용하여 응용 프로그램이 다른 단계로 이동할 때마다 변경하지 않아도되는 방법이 있습니까? I.E. DEV 것이 http://localfoo.com 것, 테스트를 위해 등, http://testserver.com

당신은 Maven의 resource filtering 소유주는 빌드시, 예를 들어,에 값 속성을 대체 사용할 수 있습니다

답변

10

다른 Maven 프로파일을 사용하여 속성 값을 설정합니다.

반면에 서블릿 매개 변수를 사용하여 컨텍스트 구성으로 이동할 수 있으므로 web.xml이이를 참조하고 실제로 .war 파일이 배포 된 응용 프로그램 서버에 구성됩니다. 이렇게하면 응용 프로그램 서버 관리자가 서버 수준에서 구성하여 각 환경에 동일한 war 파일을 다시 사용할 수 있습니다.

Tomcat에서 예를 들어, 당신은의 context.xml 파일의 값을 설정할 수 있습니다

<Context> 
    ... 
    <Parameter name="targetURL" value="http://testserver.com" 
    override="true"/> 
    ... 
</Context> 
+0

리소스 필터링이 유망 해 보입니다. 나는 당신이 http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html에 대해 이것에 대해 이야기하고 있다고 생각합니다. – ryoung

0

maven-replacer-plugin 우리가 빌드 시간 동안 텍스트, 패턴 및 버전 교체를하고 우리의 프로젝트에 사용하는 것입니다.

관련 문제