Jenkins 자동 배포 Tomcat 7
Jenkins와 함께 전쟁 파일을 배포하려고하지만 아무 일도 일어나지 않는 것 같습니다.
프로젝트가 성공적으로 빌드되었으며 Jenkins 배포 플러그인을 사용하고 있습니다. 다음 옵션으로 구성됩니다.
게시 단계는 "빌드 결과에 관계없이 실행"으로 설정됩니다.
내 브라우저에서 관리자 페이지에 액세스 할 수 있으므로 자격 증명이 올바른지 확인했습니다.
Jenkins (Maven)가 출력하는 마지막 부분은 다음과 같습니다.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:24.506s
[INFO] Finished at: Tue Feb 14 12:10:45 UTC 2012
[INFO] Final Memory: 22M/52M
[INFO] ------------------------------------------------------------------------
channel stopped
Finished: SUCCESS
또한 WAR / EAR 파일을 존재하지 않는 파일로 변경할 수 있으며 오류가 발생하지 않습니다. 내가 여기서 뭘 잘못하고 있니?
나는 같은 문제가 있었고 내 경우에는 WAR 파일의 (상대적) 경로가 올바르지 않았습니다. 분명히 정확하지 않은 경우 (작업 공간 루트에 상대적이어야 함) 배포 플러그인이 자동으로 실패합니다. 제 경우 경로는 다음과 같습니다.
target / whatever.war
이 문제가 해결되면 플러그인이 일반적으로 기본적으로 구성하는 관리자 / html 버전이 아닌 Tomcat Manager의 관리자 / 텍스트 버전에 연결할 것으로 예상한다는 점에서 다른 문제가 발생했습니다. tomcat-users.xml 파일에 다음과 같은 줄이 필요합니다.
<user username = "tomcat"password = "pencil"roles = "manager-script"/>
(이는 이미 설정 한 "manager-gui"역할에 추가됩니다.)
이러한 변경이 이루어지면 빌드 및 배포가 정상적으로 작동했습니다.
내가 사용하는 허드슨 포스트 빌드 작업이 플러그인 실행 컬 은 / 관리 / 텍스트 API에 대한을
언급 된 플러그인은 Jenkins 구성의 사용 가능한 플러그인 목록에서 선택하고 설치할 수 있습니다.
플러그인이 설치되면 "Post build task"를 활성화하고 다음 줄을 추가하기 만하면됩니다.
curl -T - -u user:pass 'http://<tomcat-host>/manager/text/deploy?update=true&path=/<yourpath>' < <path_to_war_file>
예를 들면 :
curl -T - -u manager:123456 'http://localhost:8080/manager/text/deploy?update=true&path=/slim' < /target/dist/slim.war
wget 을 사용할 수도 있지만 위의 명령을 사용 하여 출력을 기록하고 배포에 문제가 있는지 확인합니다.
다음 은 / manager / text 서비스 와 관련된 문서입니다.
Cargo 플러그인 을 사용 하셨나요? 글쎄, 나는 또한 당신, Jenkins, Maven 및 Tomcat과 동일한 구성을 가졌습니다. 하지만 배포해야 할 때는 단순히 해당 플러그인을 사용하고있었습니다. 실제로는 오래되었지만 Jenkins에서는 명령 프롬프트 줄을 입력 할 수 있었습니까? mvn clean install처럼? 따라서 할 수있는 작업은 Cargo 플러그인에 대한 pom을 구성한 다음 Jenkins에 해당 줄을 추가하는 것입니다.
mvn cargo:deploy -Pintegration
이런 식으로 매일 빌드를 새로 설치하고 Tomcat에 배포 할 수있었습니다. 그 후 나는 휴식 테스트를하고 있었다.
가치를 위해 Jenkins 용 Deploy 플러그인의 최신 버전에는 기본 URL 만 필요한 것 같습니다. 그래서 저에게는 http://blah.com:8080 이었습니다.
그 전에 host-manager / html, host-manager / text를 포함한 다른 옵션을 시도해 보았습니다.
Jenkins가 컴파일 할 pom.xml을 찾는다고 가정합니다. Jenkins 구성에서 목표와 옵션을 설정하여 package . 그런 다음 Jenkins는 war 파일을 찾아 배포하려고 시도합니다. 행운을 빕니다.
나는 target / whatever.war의 솔루션을 사용하려고 시도했지만 작동하지 않아 * / .war 을 사용하려고 시도했는데 작동합니다.
당신은 다른 빌드 작업의 작업 공간에서 원하는 파일을 찾을 위치와 Jenkins가 현재 프로젝트의 작업 공간에서 저장할 위치를 지정해야합니다. 이는 유연한 정규식 (예 : 빌드 작업에서 생성 된 WAR 파일의 경우 * / .war )이거나 훨씬 더 정확할 수 있습니다 (예 : gameoflife-web / target / gameoflife.war).
또는 DEPLOY를 연결하여 Tomcat 에 배포
Jenkins 페이지를 구성한 사용자에 대한 역할 manager-gui, admin-gui 유지
예:-
<tomcat-users>
<user username="uname" password="pword" roles="manager-gui,admin-gui"/>
</tomcat-users>
참조 URL : https://stackoverflow.com/questions/9277223/jenkins-auto-deploy-tomcat-7
'Development Tip' 카테고리의 다른 글
iOS에서 SHA-2 (이상적으로 SHA 256 또는 SHA 512) 해시를 계산하려면 어떻게해야합니까? (0) | 2020.12.15 |
---|---|
한 서비스의 로그를 별도의 파일에 작성하는 방법은 무엇입니까? (0) | 2020.12.15 |
JavaFX FileChooser (0) | 2020.12.15 |
시간을 UTC로 저장하는 것이 항상 좋은 생각입니까, 아니면 현지 시간으로 저장하는 것이 더 좋은 경우입니까? (0) | 2020.12.15 |
npm 또는 rubygems에 해당하는 Python (0) | 2020.12.15 |