저희 가게에서는 약 20 개의 Java EE 웹 응용 프로그램을 유지 관리하고 있습니다. 이러한 응용 프로그램의 대부분은 아키텍처에서 상당히 CRUD와 유사하며 일부는 꽤 프로세서 집약적 인 계산 응용 프로그램입니다.Java EE Jar 파일 공유
우리는이 응용 프로그램을 배포하기 위해 Hudson을 사용하여 CVS 저장소를 모니터링했습니다. 체크인이있을 때, 프로젝트는 Tomcat 6.0 서버에 컴파일되고 배포되도록 설정됩니다 (Solaris 10, sparc 듀얼 코어 1.6GHz 프로세서, 2GB RAM ...). 상상력 ...) 프로젝트에 대한 단위 테스트가있는 경우 해당 프로젝트가 실행되고 단위 테스트가 통과 된 경우에만 프로젝트가 배포됩니다. 이것은 잘 작동합니다.
시간이 지남에 따라 내가 만드는 많은 프로젝트가 동일한 .jar 파일을 반복적으로 사용한다는 것을 알게되었습니다 (Hibernate, POI (Excel 출력), SQL Server JDBC 드라이버, JSF, ICEFaces, 비즈니스 논리 .jar 파일 등). 우리의 연습은 우리 네트워크 드라이브의 폴더를 우리가 사용하고있는 모든 기본 .jar 파일로 유지하는 것이 었으며, 새로운 프로젝트가 시작될 때이 .jar 파일 세트를 새 프로젝트에 복사하고 거기에서부터 시작합니다. .. 그리고 나는 그렇게 느낀다 더러움 이것이 일어날 때마다 나는 밤에 나를 양육하기 시작했다. 동료들에 의해 Tomcat 서버에 .jar 저장소를 설치하는 것이 "매우 어렵습니다"라고 말했고, 이것은 두 번째 구매하지 않습니다 ... 나는 그것을 순수한 게으름으로 돌리고 아마도, 모범 사례를 배우고 싶지는 않습니다. 나는 틀릴 수있다, 그러나, 나는 다만 사정에 나의 감각을 진술하고있다. 이것은 서버에 배치되는 우리의 .war 파일의 크기를 팽창시키는 것처럼 보입니다.
Tomcat에는 자체적으로 배포 된 모든 응용 프로그램에 액세스 할 수있는 .jar 파일 집합이 있으므로 모든 프로젝트에서 이러한 .jar 파일을 통합하고 이동할 수 있다고 생각합니다. 그들을 tomcat 서버에 추가하십시오. 예를 들어 ICEFaces .jar 파일을 새 버전으로 업데이트해야하는 경우 서버의 .jar 파일 만 업데이트하면됩니다.
또 다른 부분은 서버에 .jar 파일 복사본을 하나만 포함시킴으로써 서버의 lib 디렉토리 복사본을 내 개발 환경에 보관해야한다는 것입니다 (예 : .jar 파일을 일식 의존성).
내 직감은 내가 복제 한 .jar 파일을 서버로 옮기고 싶다고 말합니다.