728x90

Jenkins + SVN + Maven + Tomcat


jenkins-ci.org 에 들어가서 .war 파일을 다운받는다.


모두 다운받은뒤 Tomcat 설치경로 > webapps 안에 집어넣는다.


tomcat/conf/tomcat-users.xml 을 수정한다.


<tomcat-users>

  <role rolename="manager-gui"/>

  <role rolename="manager-script"/>

  <role rolename="manager-jmx"/>

  <role rolename="manager-status"/>

  <role rolename="admin-gui"/>

  <role rolename="admin-script"/>

  <user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script"/>

</tomcat-users>


내용 삽입

저장하고, 톰캣 서비스를 재시작한다.

원래 하던 프로젝트가 있어서 처음은 대충 넘어갔으니 알아서 첫페이지 판단.


jenkins 관리 > 플러그인 관리



현재 설치 가능한 플러그인들을 보여준다.

필터로 검색가능


잘기억나지 않지만

Deploy to container Plugin  -  빌드 후 서버에 자동으로 deploy (tomcat 서비스를 재시작할 필요가없다.)

Maven Project Plugin, Subversion Plugin 은 깔려있었는지 깔았는지 기억나지않지만 

없다면 설치해야됨.


새로운 프로젝트를 생성한다.



Maven 프로젝트라면 당연 Build a maven2/3 project를 선택


Subversion 선택 > repository url 자신의 SVN주소를 적어 넣는다.


적어 넣으면 아래와 같은 에러가 뜨는데

Add 를 누른다.

SVN 계정 및 비밀번호를 입력한다.


그러면 박스 안에 계정명이 뜰것이다.



Build 고급 누르면 이런저런 셋팅이 나오는데

user private maven repository 프로젝트를 하나만 관리한다면

기본 m2.repository 를 사용하면 되지만 프로젝트간에 라이브러리 충돌이 나는경우가

아주 종종있기 때문에 난 workspace 로 잡아주었다.




위의 설정은 자동 배포를 위한 설정이다.

goals and options 에

clean install 을 적어준다.

그후 빌드후 조치를 누르면

deploy war/ear to a container

항목이 뜨는데

위처럼 설정해주고

context path 는 자신의 주소를 적어준다.

tomcat url 도 마찬가지

메니저 user name 는 아까 tomcat / conf / tomcat-users 에서 설정해준 계정명과 pw

저장을 누르고 사이드 메뉴를 보면 build now 가 있다 

Build now 를 누르면 build history에 프로그래스바가 진행된다.

안되는 경우는 에러를 참조하여 구글링을 한다.

pom.xml 을 못 끌어오거나 무언가 에러가있을때 안됨 간혹



진행중인 프로그래스 바를 클릭하면 페이지가 바뀐다.


console output 를 눌러 콘솔에서 진행중인 내용을 확인하자



뭐 많이 뜰것이다 어쩌고 저쩌고 build 내용 및 라이브러리 내용물들이 뜨는데 처음엔 maven 라이브러리를 가져오느라 첫번째 빌드때 느리다 , 그후 는 빠름



success 가 떨어젔다면 끝 나머지는 콘솔의 로그 내용을 보고 수정을 하든 고치든 하자.


#Tip 이 있는데 서버가 정상적으로 올라가고 쿼리 동작부분에 500에러 mapped contain 어쩌고 에러가뜰경우 xml의 경로를 확인하자.

이것때문에 개삽질 한번 했다.

war에서 .class파일을 배포할때 xml은 자동으로 배포하지 않는 모양이다.

(package 안에 java파일과 xml을 같이 두는경우 아주 간혹있다.)

그런경우 mybatis 설정에서 MapperLocation 을 잡아주고

xml을 분리하여 재배포 하면 정상적으로 아주 잘 작동한다.


반응형

'자동화 > 젠킨스(Jenkins)' 카테고리의 다른 글

기본설치 Jenkins(젠킨스)  (0) 2015.10.05
728x90

Jenkins : 젠킨스

많이 접해 보지 못한 이름입니다. 허드슨(Hudson)과 비슷한 자동배포 웹 애플리케이션입니다. 허드슨 개발자들이 나와서 제작한 툴로서, 허드슨 보다 버전이 낮지만 강력한 기능을 자랑합니다. 허드슨은 많이들 사용하고 있고 지금은 3.0.0 버전대로 올라가 있습니다. 하지만 버전이 너무 높다 보니 플러그인과의 호환성이 다소 떨어지고 있으며, 필자가 허드슨을 사용하기 위해 세팅을 해 보았지만 CVS에서 파일은 들고오되 후속처리인 Ant에서 에러가 발생하여 부득이하게 Jenkins으로 갈아탔었지만, 허드슨보다 호환성이 좋고, 후속처리인 Ant부분에서도 완벽하게 동작합니다. 

1. 설치방법

젠킨스는 현재 1.500 버전이 최신버전이며, 다운 받는 곳은 공식 홈페이지인 젠킨스(https://jenkins-ci.org)에서 받을 수 있습니다.

.war 파일로 되어 있는 젠킨스와 여러 플랫폼에서 설치할 수 있는 패키지 형태로 되어 있는 젠킨스가 있습니다. 이 글에서는 war 파일이 아닌 windows 설치 패키지로 받아 사용하겠습니다. 

jenkins-1.500.zip 파일을 압축 푸시면, setup.exe와 jenkins-1.500.msi 두 가지의 실행 파일이 있는데 익숙한 setup.exe를 더블클릭하여 next 버튼을 차례차례 눌려서 설치를 완료합니다. 


2. 젠킨스 웹 애플리케이션에 접속

젠킨스를 설치하셨다면 해당 웹에 접속을 해야되는데, war 같은 경우에는 was에서 설정한 도메인과 포트로 접속을 하지만 설치파일로 하셨다면 어떻게 접속을 해야할까요? 설정하는 부분도 없었잖아요?

젠킨스 설치파일은 로컬아이피(127.0.0.1 or localhost)와 포트(8080)을 사용하여 접속이 가능합니다. 만약 다른 PC에 설치하였고 같은 네트워크에 속해 있다면 해당 IP주소를 입력하여 접속합니다.


3. 젠킨스 설정 및 플러그인 설치

설치파일 또는 war로 설치하게 되면 젠킨스에서 추천하는 플러그인이 모두 설치가 되어지는데, 여기서 그냥 써도 상관은 없지만 가끔 낮은 버전으로 인해 CVS에서 파일을 들고 오지 못한다거나 그런 현상이 가끔 있습니다. 또한, 해당 플러그인에 의존성이 있는 플러그인은 높은 버전으로 인해 동작이 되지 않을 가능성도 있으니 주의하시고 업데이트 또는 설치를 완료하십시오.

Jekins 관리를 클릭하여 관리 페이지로 이동합니다.

젠킨스 관리에는 크게 시스템 관리, 보안 설정, 플러그인 관리가 있으며, 각각 서비스에 도움이 되는 관리화면이 준비되어 있습니다. 

시스템 설정을 하기 전에 플러그인을 업데이트 또는 설치를 하는 것을 추천드립니다. 플러그인 버전에 따라 설정화면이 달라지므로, 두번 설정하는 것보다 한번에 설정하는 것이 여러모로 편하겠죠?

업데이트가 있다면 업데이트 목록이 출력됩니다. 1.500버전을 설치하게 되면 4가지 정도 업데이트가 이루어집니다. 

CVS를 비롯한 배포에 필요한 플러그인을 설치할 수 있습니다. Filter 기능이 있지만, 컨트롤 F로 직접 찾아서 하는 것이 편하겠습니다. 

상기 화면은 현재 설치된 플러그인 목록을 나타냅니다. 만약 사용하지 않는다면 체크를 해제하시면 되고, 지우고 싶다면 Uninstall, 고급 탭에서 직접 플러그인을 업로드하여 설치하고 최신 버전으로 업데이트 하였다면 다운그레이드가 가능해집니다. 

고급 탭은 네트워크가 불안정할 때 등, 우회를 하여 접속을 해야할 경우에 설정하는 부분이고, 플러그인 올리기에서는 사용자가 직접 플러그인 파일을 올려 설치가 가능합니다. 이때에는 버전에 상관없이 올릴 수 있으나, 의존도에 따라 정확하게 동작이 구동되지 않을 가능성이 있습니다. 


4. 자동배치 작업 생성

자동으로 컴파일하여 배포를 하기 위해 젠킨스에 새 작업을 등록해야합니다. 작업 등록은 여러개가 가능하고, 한 작업으로 배포를 하여도 되고, 여러 작업에 걸쳐 배포를 하여도 됩니다. 특정 작업이 성공하면 빌드를 하도록 설정할 수도 있습니다. 

왼쪽의 메뉴에서 새 작업(New Job)을 클릭하면 프로젝트 이름과 그 프로젝트의 타입을 선택하는 화면이 나타납니다. 프리스타일, 멀티 설정, 외부 장비 모니터링, 기존 프로젝트 복사가 있지만 우리에게 필요한건 프리스타일입니다. 자유롭게 새 작업을 설정하도록 합니다. 

프로젝트 이름은 앞서 입력한 이름으로 나타나며, 이 프로젝트가 무엇을 의미하고 있는지 간단한 설명을 포함하여 여러 설정을 할 수 있습니다. 

(※ 상기 설정화면은 CVS를 기준으로 설명하고 있으며, 버전은 2.7버전이고, Ant도 앞서 시스템 설정에서 설정하였다는 가정으로 설명합니다.) 소스코드 관리는 CVS, SVN, 등등 많이 있고(플러그인을 설치해야 리스트가 나옵니다.) 여기서는 CVS를 선택하여 상세 설정을 보이게 해서 cvsroot를 설정하고 어떤 모듈을 불러서 자동 배치를 할 지 설정합니다. 구 버전대의 CVS 플러그인을 설치하고 있다면, 패스워드를 직접 cvsroot에 삽입 또는 .cvspass 라는 접속정보에 암호가 있어야 됩니다. (:pserver:user_id:passwd@host_name:Module)

Use Update에 체크를 하면, 새로운 파일이 있을 경우에 받아서 배포를 하게 됩니다. 다음으론 빌드 트리거를 설정하게 되는데, 다른 프로젝트가 빌드된 후 빌드를 하면 현재 프로젝트가 빌드되기 전에 꼭 의존성이 필요한 빌드가 있을 경우에 지정하시면 되고, build periodically는 빌드 주기를 설정하는 입력 박드가 생성되고 여기에 cron 문법을 넣으시면 됩니다. Poll SCM은 build periodically와 비슷한 cron으로 이루어 져있는데, 한가지 다른 점이라면 build periodically는 특정 주기마다 매번 동작하는 것이고, Poll SCM은 주기를 돌지만 SCM에 변경이 이루어졌다면 동작하는 것입니다. 써본지가 얼마 되지 않아서 거기서 거기같은 트리거 인것 같네요 ㅎㅎ, 저 같은 경우에는 자동 빌드같은 경우에는 Poll SCM을 사용하고 FTP 전송으로 build periodically를 씁니다. (cron 문법 */30 * * * *  : 매일 30분 단위로 실행)

Build부분에는 Ant, Shell, Windows Command, 등 빌드 후속 처리를 위한 설정을 할 수 있습니다. 시스템 설정에서 설치한 Ant를 사용하기 위해 Invoke Ant를 선택하고 Ant version, target, option을 설정하여 처리합니다. 

저장 또는 apply로 설정을 완료하고, Build Now를 하여 빌드를 합니다. 

반응형

'자동화 > 젠킨스(Jenkins)' 카테고리의 다른 글

Jenkins + SVN + Maven + Tomcat  (0) 2015.10.05

+ Recent posts