2010-07-13 5 views
0

war 파일을 빌드하고 여러 환경에 배포 할 수 있기를 원합니다. 환경을 확보하고 전쟁에 파일을 포함 시키거나 필요에 따라 토큰을 교체하는 개미 작업을 만들 수 있음을 알고 있습니다. 그러나 이것은 환경 (dev, QA, DR, prod 등)만큼 많은 다른 war 파일로 이어질 것입니다. 이것은 결코 시험 된 적이없는 생산 전쟁 파일을 만드는 것으로 보인다. 예, 환경 특정 속성 만 변경해야하지만 문제가있는 경우 해당 war 파일을 dev에 배포 할 방법이 없습니다.빌드 할 때 Tomcat 환경 전용 빌드 빌드 및 배포

하나의 war 파일을 만들고 모든 config 파일을 외부로 만들 수있는 쉬운 방법이 있습니까? startup.sh 스크립트에 위치를 설정해야합니까? 이것은 외부 위치에서 파일을 가져 오기 위해 코드를 변경해야하는 것처럼 보일 수 있습니다. 데이터베이스 구성과 같은 일부 프레임 워크의 특정 항목에서이 작업이 어떻게 작동하는지 잘 모르겠습니다. 현재 dev 설정으로 하나의 war 파일을 만든 다음 각 환경에 배포하여 폭발적으로 처리 한 다음 환경 특정 속성 파일을 복사하는 스크립트를 실행 한 다음 이러한 속성이 적용되도록 tomcat을 다시 시작합니다.하지만이 ' 좋은 해결책 같아 보입니다.

필요한 등록 정보 파일은 데이터베이스 구성, 메일 서버 위치와 같은 응용 프로그램 별 등록 정보 및 log4j.properties입니다.

저는 Tomcat을 실행하는 Linux 서버에이를 배포하고 있으며 서버에 대한 모든 액세스 권한이 있으므로 필요한 ant, bash 등의 스크립트를 만들 수 있습니다.

+0

나는 동일한 문제가 있으며, 나는 David에게 동의합니다. . 다른 환경에서의 서로 다른 전쟁은 해결책이 아닙니다. 전쟁을 할 때마다 jar 파일의 md5sum이 달라집니다. 테스트 전쟁이 아니라 찌르다가 생기게하는면에서 문제가 생길 것입니다. 더 좋은 방법이 있어야합니다. – gman

답변

1
  1. 데이터 원본과 같은 항목에 JNDI를 사용하면 응용 프로그램이 컨테이너에서 리소스를 가져올 수 있습니다. 그러나 그 해결책은 설정되는 모든 것들에 대해 작동하지 않을 것입니다.

일반적으로 저는 각 환경에 대해 전쟁/귀를 만드는 것이 '정상적인'습관이라고 생각합니다. 나는 당신이 '결코 테스트되지 않은 전쟁 파일을 배포하고있다'는 진술에 동의하지 않습니다. 구성이 테스트되지 않은 war 파일을 배포하는 것이 더 정확합니다. 어쩌면 당신은 생산 구성을 확인하고 생산 전쟁을 일으킬 때 실행할 수있는 단위 테스트를 작성할 수 있습니다. 따라서 '테스트 찌르다'요구 사항을 체크 할 수 있습니다 ...