2017-10-26 28 views
0

"소스 트리에 파일을 복사하는 것"이상의 다른 환경을 다루는 정상적인 방법을 소개 한 적이없는 레거시 코드베이스를 상속하는 중입니다. 나는 모든 것을 깨뜨리지 않으면 서 약간의 정신을 다시 도입하려고 노력하고있다.레거시 Java 웹 응용 프로그램에서 web.xml 파일 간 전환

프런트 엔드 웹 애플리케이션 (톰캣 6.x의 봄 MVC 3.x를 사용)의 web.xml가 다른 URL에 프록시 서블릿의 무리 포함

에게 : 지역 발전을 위해

<servlet> 
    <servlet-name>FooProxy</servlet-name> 
    <servlet-class>org.mortbay.servlet.ProxyServlet$Transparent</servlet-class> 
    <init-param> 
     <param-name>ProxyTo</param-name> 
     <param-value>http://example.com/foo/</param-value> 
    </init-param> 
</servlet> 

,이 있습니다 이를 달성하기 위해 가장 좋은 방법은 무엇

<servlet> 
    <servlet-name>FooProxy</servlet-name> 
    <servlet-class>org.mortbay.servlet.ProxyServlet$Transparent</servlet-class> 
    <init-param> 
     <param-name>ProxyTo</param-name> 
     <param-value>http://localhost:8080/foo/</param-value> 
    </init-param> 
</servlet> 

있도록 : 어떤 종류의 dev에 서버에 프록시를 서블릿으로 교체 할

    ,
  • 이 앱이 mvn tomcat6:run

나의 현재 사고 같은 것을 사용할 때 넣어 dev에 구성되었다 사용하여 시작됩니다 받는다는 빌드 아무것도

  • 를 만지기 전에 생산하는 것과 같은 출력을 얻을 쉽게 같은 비표준 소스 폴더에 web.xml 파일의 버전 :

    되어
    `--envs 
        | 
        |--prod 
        | | 
        | `--webapp 
        |  | 
        |  `--web.xml // the original ("production") configuration 
        | 
        `--dev 
         | 
         `--webapp 
         | 
         `--web.xml // the development configuration 
    

    : 각 "환경"폴더보통 무엇의 다른 버전이 포함되어 있습니다. 그런 다음 Maven 프로파일을 사용하여 해당 폴더를 연결합니다. 기본적으로 프로덕션 하나가 활성화되어 있습니다.

    내가 모르는 것은 Maven 문서가 가끔 끔찍하기 때문에 그 폴더의 위치를 ​​설정하는 방법도 있습니다. 내가 아는 전부는 src/main/webapp어딘가에 정의 된 규칙이다.. 또한 tomcat6 플러그인이 다른 webapp 폴더가 있는지 확인하고 더 많은 플러그인을 구성 할 수 있는지 그리고 올바르게 작동하는지 여부는 알 수 없습니다. 이상적으로 기본 폴더의 환경간에 동일하게 유지되는 많은 파일을 webapp 아래에 보관하고 환경 폴더와 병합하고 싶습니다.

  • 답변

    1

    더 좋은 방법은 maven 프로필을 사용하는 것입니다.

    이 ProxyURL을 정의하는 dev 및 production 프로필을 가질 수 있습니다.

    당신은 더 독서에 대한

    환경에 따라 프로필을 사용할 수 있습니다 :

    1. http://maven.apache.org/guides/introduction/introduction-to-profiles.html
    2. https://maven.apache.org/guides/mini/guide-building-for-different-environments.html
    나는 실제로 내가 수렁에 빠져했기 때문에 그 존재 잊었 인정한다
    +0

    이 코드베이스의 많은 수준의 엉망입니다. – millimoose