[1] 젠킨스 Jenkins 스프링부트 war+Maven+Tomcat+Svn 빌드 및 배포
스프링부트(war) Tomcat9 톰캣 WAS Maven 레퍼지토리 Svn으로 구성한 프로젝트를 젠킨스로 빌드배포하기
#버전
- JDK 1.8
- 스프링부트 버전 2.7
- 아파치 톰캣 9
- maven 3.9.6
- SVN 형상관리
# 삽질 주요 포인트
- 젠킨스에서 프로젝트를 구성할때 안보이는 옵션은 플러그인마켓에서 추가해야만 보인다.
- 프로젝트를 jdk 1.8로 만들었으면 톰캣이 참조하는 jre도 1.8로 해야한다. (톰켓 로그에도 오류가안나오기때문에 해맴)
- 톰캣서버를 켜놔야(./startup.sh) 젠킨스에서 최종 아웃콘솔에 Build Success가 나온다.
1. 아파치 톰캣 설정
apache-tomcat-9.0.85/conf/tomcat-users.xml
파일에 아래 내용 추가 후 저장, 톰캣 계정정보는 admin / admin 으로 설정한다. (젠킨스에서 입력정보로 사용)
<role rolename="manager"/>
<role rolename="manager-gui" />
<role rolename="manager-script" />
<role rolename="manager-jmx" />
<role rolename="manager-status" />
<role rolename="admin"/>
<user username="admin" password="admin" roles="admin,manager,manager-gui, manager-script, manager-jmx, manager-status"/>
apache-tomcat-9.0.85/webapps/host-manager/META-INF/context.xml
apache-tomcat-9.0.85/webapps/manager/META-INF/context.xml
이 두파일에서 아래의 내용을 주석한다.
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
주의) 톰캣의 자바버전은 배포할 프로젝트의 자바 버전과 동일하게 설정한다.
2. 젠킨스 - 메이븐 설정
Dashboard > Jenkins 관리 > Tools
따로 컴퓨터에 메이븐을 설치할 필요없이 이곳에다 설정해놓는다.
2. 젠킨스 - 플러그인 설치
Deploy to container Plugin 버전 1.16
Subversion Plug-in 버전 2.17.3
마켓에서 그냥 무식하게 svn, maven, deploy 쳤을때 나오는 플러그인은 설치하자.
용량이 크게 차지하는 부분은 아님.
3. 젠킨스 -프로젝트 생성
Maven Project로 생성한다.
4. 젠킨스 - 프로젝트 상세설정
- SVN정보 입력
위에 다른 설정들은 그냥 Default로 놔두고 아래 Subversion 항목까지 내려온다ㅣ.
Credentials에 먼저 username / password를 등록하면 Credentials 콤보박스에 계정정보가 생긴다.
쭉 쭉 밑으로 내린다.
Build 항목에 아래와 같이 입력.
- Build 항목 입력
- 빌드후 조치 항목에서 Deploy war/ear to a container 선택
빌드 후 조치란? 빌드가 끝났으니 이제 서버를 실행시켜야한다. 그래서 톰캣을 설정한다.
- 톰캣 정보를 입력한다.
WAR/EAR files에
**/*.war를 적으면 젠킨스 프로젝트 경로에서 빌드된 파일이 톰캣 webapps 폴더에 ROOT.war란 이름으로 복사된다.
Add Container에서 tomcat 9를 선택
톰캣 정보를 입력해준다.
위에 svn 계정정보 입력하는 것처럼 똑같이 username / password에다가 위에서 tomcat-users.xml 파일에 입력한 계정정보 admin/admin을 넣는다.
그리고 저장
기본적인 설정은 모두 끝났다
5. 젠킨스 - 빌드 시작
먼저 톰캣 서버를 시작한다.
./startup.sh
> Tomcat started.
빌드 화살표를 누르면 왼쪽하단에 빌드 프로그레스바가 생긴다.
Console Output을 누르면 현재 진행중인 빌드의 로그를 볼 수 있다.
빌드가 완료되면 SUCCESS로 마무리 된다.
원리는 SVN에서 프로젝트를 젠킨스 프로젝트 경로로 내려받고, war로 빌드 후 톰캣 webapps 폴더에 ROOT.war 이름으로 복사 시킨다.