2012-01-30 2 views
4

내 정규 빌드 작업으로 빌드하고 배포하기 위해 빌드 된 웹 응용 프로그램을 설치하려고합니다.Jenkins Fresh Deploy는 컨테이너 배포 플러그인을 사용하여 작동하지만 재배포하는 경우 다시 작동하지 않습니다.

빌드가 정상적으로 작동하지만 컨테이너 배포 플러그인을 사용하면 새로운 배포가 작동하지만 응용 프로그램을 다시 배포 할 수 없다는 점에서 신뢰할 수없는 것으로 보입니다. 앱이 이미 배포 된 경우 플러그인을 배포 할 수 없습니다 (전쟁은 이미 webapps 디렉토리에 있습니다). 전쟁을 삭제하고 모든 것을 배포 해제 한 다음 젠킨스 빌드를 빌드하면 예상대로 작동하지만 나중에는 실패합니다. 오류 메시지는 다음과 같습니다.

org.codehaus.cargo.container.tomcat.internal.TomcatManagerException: FAIL - Encountered exception javax.management.RuntimeErrorException: Error invoking method check 

대신 deploy : deploy를 사용하고 배포 관리 섹션을 추가하여 maven 빌드 자체의 일부로 배포해야합니까?

또는 나는 그들의 실종 설정을 놓치고 있습니까?

답변

0

내가 뭐하는 거지이 https://stackoverflow.com/a/6524012/106261

나는화물을 호출 할 수 있습니다

: 배포 취소 후 빌드 단계로 : 나는 치어

에 저장된 배포 디테일을 갖고 싶어 아니면 내가이화물을 호출하는 경우 게시물 빌드 단계로 재배치 , 그리고 jenkins에 넣은 설정을 사용하여 실제로 배치하기 위해 container deploy plugin을 사용하십시오.

1

첫째, maven deploy 플러그인은 웹 응용 프로그램을 컨테이너에 배포하지 않습니다. 프로젝트 산출물을 Maven 저장소에 배포합니다. 그래서, 그것은 당신의 목적을 위해 사용될 수 없습니다.

둘째, this 관련 open jira 문제를 참조하십시오. 이것은 또한 해결책/해결 방법을 제안합니다.

+0

cargo : 재배포는 원격 tomcat7에 war 파일을 재배포하는 것만으로도 작동합니다. 나는 해결책으로 저를 위해 일한 해결책을 게시했습니다. – NimChimpsky

+0

@NimChimpsky. 물론, 위의 링크는 정확히 같은 것을 제안합니다. 나는 maven 배포를 명확하게하는 것이 중요하다고 느꼈다. – Raghuram

1

전에 war 파일을 배포하기 전에 이것을 사용하여 기존 패키지의 배포를 취소 할 수 있습니다. http://mojo.codehaus.org/tomcat-maven-plugin/undeploy-mojo.html 배포를 수행하기 전에이 작업을 동일한 작업에 추가 할 수 있다고 생각합니다. 예상대로 CI를 가질 수 있습니다.

4

같은 문제가있었습니다. 놀랍게도, 완전히 다른 것들이 내 경우에 도움이되었습니다.

재배포시 tomcat 로그를보고, OutOfMemory: Permgen space을 보았습니다. $CATALINA_HOME/bin/setenv.sh에서 XX:PermSizeXX:MaxPermSize ~ 256m을 늘리면이 문제가 완전히 해결됩니다.

1

context.xml에 동일한 컨텍스트 루트가있는 2 개의 응용 프로그램을 배포하려고 시도 할 수도 있습니다 (배포 할 때 jenkins에 정의 된 다른 응용 프로그램).

수동으로 웹 응용 프로그램을 정리하고 서버를 다시 시작해야했습니다. 이제 다시 작동합니다.