2010-12-02 3 views
4

나는 봄을 사용하는 프로젝트를 가지고있다. 배포 할 때마다 모든 테스트를 실행하고 war 파일을 만드는 maven 목표 인 "package"를 실행합니다. 그런 다음 ftp 프로그램을 사용하여 war 파일을 서버에 복사합니다. 그런 다음 서버를 종료하고 전쟁을 대체하고 서버를 다시 시작하기 위해 bash 스크립트를 실행합니다.Spring과 Maven을 사용할 때 코드를 서버에 배포하는 가장 좋은 방법은 무엇입니까?

때때로 데이터베이스 스키마 변경이 완료되면 SQL 마이그레이션 스크립트를 수동으로 실행해야합니다.

사용할 수있는 워크 플로우가 더 있습니까? 프로젝트의 war 파일이 60MB가되면 서버에 업로드하는 데 10-12 분을 기다려야합니다. 하나의 작은 것을 바꿔야한다는 것을 알게되면 나는 전체 과정을 다시해야합니다.

DSL에서 업로드 대역폭이 다운로드 대역폭을 죽이면 인터넷이 완전히 작동하지 않기 때문에 나에게 나쁘지 않습니다. 프로젝트에 대한 작업과 Maven 목표 실행은 인터넷 연결을 사용하여 항상 종속성을 찾기 때문에 속도가 느립니다.

더 좋은 방법이 있습니까? 감사.

답변

1

먼저 Maven Deploy 플러그인을 사용하여 수동으로 ftp 복사본을 만들지 않아도됩니다. 당신은 어떻게 -이 URL에 FTP를 통해 프로젝트를 배포 할 찾을 수 있습니다

http://maven.apache.org/plugins/maven-deploy-plugin/examples/deploy-ftp.html

두 번째 포인트는 프로젝트에 대한 질문입니다 : 당신의 WAR 크기가 정상입니까?
마지막 항아리를 만들 때 META-INF/spring.handlers 덮어 쓰기 문제를 피하기 위해 불필요한 jar 파일을 포함하는 구성에 대해 들어 봤습니다. 이 상황에 있다면, 당신은이 너무로 관심이있을 수 있습니다

http://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html

+0

글쎄, 내가 서버에 업로드 상관하지 않습니다. 이 수동 단계가 실제로 문제라고 생각하지 않습니다. 할 수있는 한 60 MB를 업로드 할 필요가 없습니다. 특히 2KB 만 변경하면됩니다. 소스와 서버를 동기화하고 메이븐을 통해 서버 자체에서 빌드를 수행하는 방법이 있습니까? – egervari

+0

글쎄, 서버에 대한 ssh 액세스 권한이 없다면 서버에서 빌드를 할 수 있다고 생각하지 않는다. 나는 Spring을 전혀 모른다. 그러나 Tomcat (http://www.tomcatexpert.com/knowledge-base/deploying-exploded-war-files)을 사용하고 있다면 webapp 부분을 업데이트하는 것이 가능 해 보인다. 그렇다면 maven 배포와 함께 이러한 분리 된 파일을 배포 할 수 있습니다. – jopasserat

관련 문제