자바 웹프로젝트 개발환경 셋팅

77
NHN NEXT / HumanDegisn Project / RollingPuppy Team / 정윤성 Continuous Intergration Server

description

Java설치부터 Jenkins까지

Transcript of 자바 웹프로젝트 개발환경 셋팅

Page 1: 자바 웹프로젝트 개발환경 셋팅

NHN����������� ������������������  NEXT����������� ������������������  /����������� ������������������  HumanDegisn����������� ������������������  Project����������� ������������������  /����������� ������������������  RollingPuppy����������� ������������������  Team����������� ������������������  /����������� ������������������  정윤성����������� ������������������  

Continuous Intergration Server

Page 2: 자바 웹프로젝트 개발환경 셋팅

CI����������� ������������������  (Continuous����������� ������������������  Intergration)����������� ������������������  

Page 3: 자바 웹프로젝트 개발환경 셋팅

CI란?����������� ������������������  여러명으로����������� ������������������  구성된����������� ������������������  팀이����������� ������������������  작업한것을����������� ������������������  자주����������� ������������������  통합하는����������� ������������������  것을����������� ������������������  가리키는����������� ������������������  소프트웨어����������� ������������������  개발����������� ������������������  실천법����������� ������������������  

출처 : http://mikeciblogs.wordpress.com/2010/06/15/continuous-integration-for-agile-project-managers-part-3/

Page 4: 자바 웹프로젝트 개발환경 셋팅

더����������� ������������������  자세히..����������� ������������������  Commit-����������� ������������������  Build����������� ������������������  ­–����������� ������������������  Test����������� ������������������  -����������� ������������������  Report����������� ������������������  

출처 : http://blog.jki.net/news/niweek-2012-fire-and-forget-bulletproof-builds-using-continuous-integration-with-labview-video-slides-now-available/

Page 5: 자바 웹프로젝트 개발환경 셋팅

근데..?����������� ������������������  별로����������� ������������������  안와닿는다면..����������� ������������������  

일주일전에 짠 소스코드가 기억이 나려면 얼마나 걸릴까?

Page 6: 자바 웹프로젝트 개발환경 셋팅

장점����������� ������������������  트러블슈팅을����������� ������������������  위한����������� ������������������  이슈관리����������� ������������������  

1. 개발자들은 하루에 몇차례씩 빌드를 수행한다.

2. 통합이 수행될 때마다 테스트를 포함한 자동화된 빌드절차에 의해 통합내용은 자동 검증된다.

3. 소프트웨어 통합에 발생할 수 있는 에러(중요한문제)를 조기에 발견할 수 있게된다.

4. 팀 프로젝트에서 보다 빠르게 응집력이 높은 소프트웨어를 개발할 수 있게 해준다.

Page 7: 자바 웹프로젝트 개발환경 셋팅

장점����������� ������������������  트러블슈팅을����������� ������������������  위한����������� ������������������  이슈관리����������� ������������������  

1. 개발자들은 하루에 몇차례씩 빌드를 수행한다.

2. 통합이 수행될 때마다 테스트를 포함한 자동화된 빌드절차에 의해 통합내용은 자동 검증된다.

3. 소프트웨어 통합에 발생할 수 있는 에러(중요한문제)를 조기에 발견할 수 있게된다.

4. 팀 프로젝트에서 보다 빠르게 응집력이 높은 소프트웨어를 개발할 수 있게 해준다.

소프트웨어 빌드 자동화

지속적이고 자동화된 빌드 검증

지속적이고 자동화된 빌드 테스트

빌드 후속 절차 자동화

Page 8: 자바 웹프로젝트 개발환경 셋팅

http://pragmaticstory.com/224

더 자세히 알고 싶다면..!

(마틴 파울러님의 블로그 본문 번역글)

Page 9: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  (http://jenkins-ci.org/)����������� ������������������  

Page 10: 자바 웹프로젝트 개발환경 셋팅

그전에����������� ������������������  먼저..����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-1����������� ������������������  

리눅스에����������� ������������������  Java,����������� ������������������  Tomcat,����������� ������������������  GIT,����������� ������������������  Maven����������� ������������������  설치하는����������� ������������������  방법����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-2����������� ������������������  

Maven����������� ������������������  Project����������� ������������������  자동배포����������� ������������������  

Page 11: 자바 웹프로젝트 개발환경 셋팅

그전에����������� ������������������  먼저..����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-1����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-2����������� ������������������  

1. add-apt-repository를 사용하기 위한 패키지 설치

Maven����������� ������������������  Project����������� ������������������  자동배포����������� ������������������  

root@next :/usr/lib# apt-get install python-software-properties

2. Oracle Java 설치를 위해서 repository를 추가한다.

root@next :/usr/lib# add-apt-repository ppa:webupd8team/java

* PPA란? PPA는 Personal Package Archive의 약자로 우분투 업데이트보다 더 빠르게 최신프로그램을 제공한다. 일반적으로 사용하는 ‘우분투 소프트웨어 센터’에서는 우분투 팀에 의해서 미리 안전하고 안정적이라고 판단되는 것들만 모여있는 저장소. 소프트웨어 최신버전이 나오더라도 우분투의 다음버전까지 업데이트를 기다려야 하는데, PPA는 개발자들과 최신버전 사용을 원하는 우분투유저에게 최신 프로그램 사용을 허락하는 저장소이다.

리눅스에����������� ������������������  Java,����������� ������������������  Tomcat,����������� ������������������  GIT,����������� ������������������  Maven����������� ������������������  설치하는����������� ������������������  방법����������� ������������������  

Page 12: 자바 웹프로젝트 개발환경 셋팅

그전에����������� ������������������  먼저..����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-1����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-2����������� ������������������  

3. 추가한 repository 적용

Maven����������� ������������������  Project����������� ������������������  자동배포����������� ������������������  

root@next :/usr/lib# apt-get update

4. 원하는 버전의 자바 설치 (예시는 7버전으로 설치합니다)

root@next :/usr/lib# apt-get install oracle-java7-installer

5. 설치된 자바 버전확인

root@next :/usr/lib# java –version

java version "1.7.0_45" Java(TM) SE Runtime Environment (build 1.7.0_45-b06) Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

리눅스에����������� ������������������  Java,����������� ������������������  Tomcat,����������� ������������������  GIT,����������� ������������������  Maven����������� ������������������  설치하는����������� ������������������  방법����������� ������������������  

Page 13: 자바 웹프로젝트 개발환경 셋팅

그전에����������� ������������������  먼저..����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-1����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-2����������� ������������������  

7. Tomcat 설치

Maven����������� ������������������  Project����������� ������������������  자동배포����������� ������������������  

root@next :/usr/lib# apt-get install tomcat7

* Tomcat 수동설치 위와 같이 자동설치를 하게되면 설치 내용들이 자동적으로 파편화된다. Ex) root@next:~# whereis tomcat7 tomcat7: /etc/tomcat7 /usr/share/tomcat7 위의 두가지 경우 뿐만 아니라, /var/lib/tomcat7으로도, /var/log/tomcat7 등등 세부적인 기능별로 쪼개지게 된다. 이러한 점들을 막기 위해서 tar 압축파일을 수동으로 다운로드 받아(wget등등을 이용) 설치하게 되면, 한 폴더로 압축이 풀리게 되며 관리가 용이해진다. (단, path등을 수동으로 설정해 주어야 한다) 자세한 내용은 “linux tomcat 수동설치”와 같이 검색해보자.

리눅스에����������� ������������������  Java,����������� ������������������  Tomcat,����������� ������������������  GIT,����������� ������������������  Maven����������� ������������������  설치하는����������� ������������������  방법����������� ������������������  

Page 14: 자바 웹프로젝트 개발환경 셋팅

그전에����������� ������������������  먼저..����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-1����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-2����������� ������������������  

8. JAVA Path설정

Maven����������� ������������������  Project����������� ������������������  자동배포����������� ������������������  

root@next :/usr/lib# vi /etc/default/tomcat7

리눅스에����������� ������������������  Java,����������� ������������������  Tomcat,����������� ������������������  GIT,����������� ������������������  Maven����������� ������������������  설치하는����������� ������������������  방법����������� ������������������  

Page 15: 자바 웹프로젝트 개발환경 셋팅

그전에����������� ������������������  먼저..����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-1����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-2����������� ������������������  

9. Tomcat 서비스 실행 및 서비스 동작확인

Maven����������� ������������������  Project����������� ������������������  자동배포����������� ������������������  

root@next :/usr/lib# service tomcat7 start * Starting Tomcat servlet engine tomcat7

http://10.73.44.81:8080

리눅스에����������� ������������������  Java,����������� ������������������  Tomcat,����������� ������������������  GIT,����������� ������������������  Maven����������� ������������������  설치하는����������� ������������������  방법����������� ������������������  

Page 16: 자바 웹프로젝트 개발환경 셋팅

그전에����������� ������������������  먼저..����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-1����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-2����������� ������������������  

10. Tomcat docs, example, admin 설치 및 확인

Maven����������� ������������������  Project����������� ������������������  자동배포����������� ������������������  

root@next :/usr/lib# apt-get install tomcat7-admin tomcat7-examples tomcat7-docs

http://10.73.44.135:8080/manager/html http://10.73.44.135:8080/docs http://10.73.44.135:8080/examples

리눅스에����������� ������������������  Java,����������� ������������������  Tomcat,����������� ������������������  GIT,����������� ������������������  Maven����������� ������������������  설치하는����������� ������������������  방법����������� ������������������  

Page 17: 자바 웹프로젝트 개발환경 셋팅

그전에����������� ������������������  먼저..����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-1����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-2����������� ������������������  

11. Tomcat Manager User 설정하기

Maven����������� ������������������  Project����������� ������������������  자동배포����������� ������������������  

root@next :/var/lib/tomcat7/conf# vi tomcat-users.xml <tomcat-users> <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager"/> <role rolename="admin-gui"/> <role rolename="admin-script"/> <role rolename="admin"/> <user username="사용할계정명" password="비밀번호" roles="manager-gui,manager-script,manager,admin-gui,admin-script,admin"/> </tomcat-users>

http://10.73.44.135:8080/manager/html

리눅스에����������� ������������������  Java,����������� ������������������  Tomcat,����������� ������������������  GIT,����������� ������������������  Maven����������� ������������������  설치하는����������� ������������������  방법����������� ������������������  

Page 18: 자바 웹프로젝트 개발환경 셋팅

그전에����������� ������������������  먼저..����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-1����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-2����������� ������������������  

12. Git 설치하기

Maven����������� ������������������  Project����������� ������������������  자동배포����������� ������������������  

root@next :/var/lib/tomcat7/conf# apt-get install git

리눅스에����������� ������������������  Java,����������� ������������������  Tomcat,����������� ������������������  GIT,����������� ������������������  Maven����������� ������������������  설치하는����������� ������������������  방법����������� ������������������  

Page 19: 자바 웹프로젝트 개발환경 셋팅

그전에����������� ������������������  먼저..����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-1����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-2����������� ������������������  

13. Maven 다운로드

Maven����������� ������������������  Project����������� ������������������  자동배포����������� ������������������  

root@next :/root# wget http://mirror.apache-kr.org/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.tar.gz root@next :/root# tar xvf apache-maven-3.1.1-bin.tar.gz root@next :/root# mv apache-maven-3.1.1 /opt root@next :/root# ln –s /opt/apache-maven-3.1.1 /opt/maven (Symbolic link 생략가능)

리눅스에����������� ������������������  Java,����������� ������������������  Tomcat,����������� ������������������  GIT,����������� ������������������  Maven����������� ������������������  설치하는����������� ������������������  방법����������� ������������������  

14. 환경변수 등록 및 시스템적용

root@next :/root# vi /etc/profile export MAVEN_HOME = /opt/maven export PATH=$PATH:$MAVEN_HOME/bin root@next :/root# source /etc/profile

Page 20: 자바 웹프로젝트 개발환경 셋팅

그전에����������� ������������������  먼저..����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-1����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-2����������� ������������������  

15. Maven 설정 변경

Maven����������� ������������������  Project����������� ������������������  자동배포����������� ������������������  

root@next :/root# vi /opt/maven/conf/settings.xml

리눅스에����������� ������������������  Java,����������� ������������������  Tomcat,����������� ������������������  GIT,����������� ������������������  Maven����������� ������������������  설치하는����������� ������������������  방법����������� ������������������  

Page 21: 자바 웹프로젝트 개발환경 셋팅

그전에����������� ������������������  먼저..����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-1����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-2����������� ������������������  

16. Maven 설치 확인

Maven����������� ������������������  Project����������� ������������������  자동배포����������� ������������������  

root@next :/root# mvn -version

리눅스에����������� ������������������  Java,����������� ������������������  Tomcat,����������� ������������������  GIT,����������� ������������������  Maven����������� ������������������  설치하는����������� ������������������  방법����������� ������������������  

Page 22: 자바 웹프로젝트 개발환경 셋팅

그전에����������� ������������������  먼저..����������� ������������������  리눅스에����������� ������������������  Java,����������� ������������������  Tomcat,����������� ������������������  GIT,����������� ������������������  Maven����������� ������������������  설치하는����������� ������������������  방법����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-2����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-1����������� ������������������  

Maven����������� ������������������  Project����������� ������������������  자동배포����������� ������������������  

Page 23: 자바 웹프로젝트 개발환경 셋팅

그전에����������� ������������������  먼저..����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-1����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-2����������� ������������������  

Maven����������� ������������������  Project����������� ������������������  자동배포����������� ������������������  

리눅스에����������� ������������������  Java,����������� ������������������  Tomcat,����������� ������������������  GIT,����������� ������������������  Maven����������� ������������������  설치하는����������� ������������������  방법����������� ������������������  

Page 24: 자바 웹프로젝트 개발환경 셋팅

그전에����������� ������������������  먼저..����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-1����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-2����������� ������������������  

Maven����������� ������������������  Project����������� ������������������  자동배포����������� ������������������  

리눅스에����������� ������������������  Java,����������� ������������������  Tomcat,����������� ������������������  GIT,����������� ������������������  Maven����������� ������������������  설치하는����������� ������������������  방법����������� ������������������  

Page 25: 자바 웹프로젝트 개발환경 셋팅

그전에����������� ������������������  먼저..����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-1����������� ������������������  

톰캣의 webapps폴더에 옮기면 자동으로 deploy된다.

Maven����������� ������������������  Project����������� ������������������  자동배포����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-2����������� ������������������  

리눅스에����������� ������������������  Java,����������� ������������������  Tomcat,����������� ������������������  GIT,����������� ������������������  Maven����������� ������������������  설치하는����������� ������������������  방법����������� ������������������  

Page 26: 자바 웹프로젝트 개발환경 셋팅

그전에����������� ������������������  먼저..����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-1����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-2����������� ������������������  

Maven����������� ������������������  Project����������� ������������������  자동배포����������� ������������������  

http://search.maven.org/

리눅스에����������� ������������������  Java,����������� ������������������  Tomcat,����������� ������������������  GIT,����������� ������������������  Maven����������� ������������������  설치하는����������� ������������������  방법����������� ������������������  

Page 27: 자바 웹프로젝트 개발환경 셋팅

그전에����������� ������������������  먼저..����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-1����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-2����������� ������������������  

Maven����������� ������������������  Project����������� ������������������  자동배포����������� ������������������  

Pom.xml

리눅스에����������� ������������������  Java,����������� ������������������  Tomcat,����������� ������������������  GIT,����������� ������������������  Maven����������� ������������������  설치하는����������� ������������������  방법����������� ������������������  

Page 28: 자바 웹프로젝트 개발환경 셋팅

그전에����������� ������������������  먼저..����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-1����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-2����������� ������������������  

Maven����������� ������������������  Project����������� ������������������  자동배포����������� ������������������  

리눅스에����������� ������������������  Java,����������� ������������������  Tomcat,����������� ������������������  GIT,����������� ������������������  Maven����������� ������������������  설치하는����������� ������������������  방법����������� ������������������  

Page 29: 자바 웹프로젝트 개발환경 셋팅

그전에����������� ������������������  먼저..����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-1����������� ������������������  

리눅스에����������� ������������������  war파일����������� ������������������  배포하는����������� ������������������  방법-2����������� ������������������  

Maven����������� ������������������  Project����������� ������������������  자동배포����������� ������������������  

리눅스에����������� ������������������  Java,����������� ������������������  Tomcat,����������� ������������������  GIT,����������� ������������������  Maven����������� ������������������  설치하는����������� ������������������  방법����������� ������������������  

Page 30: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  Install����������� ������������������  

Page 31: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  설치����������� ������������������  홈페이지����������� ������������������  접속����������� ������������������  

Page 32: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  설치����������� ������������������  war파일����������� ������������������  배포����������� ������������������  

Page 33: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  설치����������� ������������������  Jenkins����������� ������������������  시작을����������� ������������������  위한����������� ������������������  설정변경����������� ������������������  

아무리 스타트하려 해도 시작이 안된다. 몇가지 설정을 변경해준다. 1.  tomcat-admin의 Max-File-Size 설정 2.  리눅스 폴더권한 설정

Page 34: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  설치����������� ������������������  tomcat-admin����������� ������������������  설정변경����������� ������������������  ����������� ������������������  

root@next :~# cd /usr/share/tomcat7-admin/manager/WEB-INF root@next :/usr/share/tomcat-7-admin/manager/WEB-INF# vi web.xml

0한개씩을 더 붙여줍니다.

Page 35: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  설치����������� ������������������  리눅스����������� ������������������  권한설정����������� ������������������  

권한변경

sudo chown -R tomcat7:tomcat7 /var/lib/tomcat7/ sudo chown -R tomcat7:tomcat7 /etc/tomcat7/ sudo chown -R tomcat7:tomcat7 /usr/share/tomcat7/

<chown Reference> http://www.cyberciti.biz/faq/how-to-use-chmod-and-chown-command/

Page 36: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  설치����������� ������������������  홈페이지에서����������� ������������������  접속확인����������� ������������������  

Page 37: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  Security����������� ������������������  

Page 38: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  사용자����������� ������������������  설정����������� ������������������  현재����������� ������������������  URL접근자에게����������� ������������������  모두����������� ������������������  공개되어����������� ������������������  있다.����������� ������������������  

<chown Reference> http://www.cyberciti.biz/faq/how-to-use-chmod-and-chown-command/

Page 39: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  사용자����������� ������������������  설정����������� ������������������  Warning을����������� ������������������  확인할����������� ������������������  수����������� ������������������  있다.����������� ������������������  

<chown Reference> http://www.cyberciti.biz/faq/how-to-use-chmod-and-chown-command/

Page 40: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  사용자����������� ������������������  설정����������� ������������������  Security����������� ������������������  설정으로����������� ������������������  사용자를����������� ������������������  제한해보자.����������� ������������������  

v

Page 41: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  사용자����������� ������������������  설정����������� ������������������  회원가입/로그인을����������� ������������������  통한����������� ������������������  사용자����������� ������������������  설정����������� ������������������  

젠킨스 사용자에 대한 데이터베이스를 따로 사용한다.

관리자가 계정가입을 시켜줄지, 유저 스스로 가입할 수 있을지를 선택한다.

하위 표를 통해서 권한제어를 한다

권한제어 메트릭스

v

Page 42: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  사용자����������� ������������������  설정����������� ������������������  사용자����������� ������������������  권한����������� ������������������  매트릭스����������� ������������������  설정����������� ������������������  

Save!!

Page 43: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  사용자����������� ������������������  설정����������� ������������������  오른쪽����������� ������������������  상단의����������� ������������������  ‘회원가입’����������� ������������������  ­–����������� ������������������  admin아이디����������� ������������������  생성����������� ������������������  

모든 메뉴를 자유롭게 쓸 수 있다.

Page 44: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  사용자����������� ������������������  설정����������� ������������������  오른쪽����������� ������������������  상단의����������� ������������������  ‘회원가입’����������� ������������������  ­–����������� ������������������  test����������� ������������������  아이디����������� ������������������  생성����������� ������������������  

Page 45: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  사용자����������� ������������������  설정����������� ������������������  Access����������� ������������������  Deny����������� ������������������  

Page 46: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  사용자����������� ������������������  설정����������� ������������������  사용자����������� ������������������  권한����������� ������������������  매트릭스����������� ������������������  설정과����������� ������������������  매치����������� ������������������  

Page 47: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  사용자����������� ������������������  설정����������� ������������������  만약����������� ������������������  Security����������� ������������������  설정에서����������� ������������������  가입을����������� ������������������  허가하지����������� ������������������  않으면?!����������� ������������������  

사라지게 된다.

Page 48: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  사용자����������� ������������������  설정����������� ������������������  그렇다면����������� ������������������  계정관리는?!����������� ������������������  

Page 49: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  Plugin����������� ������������������  

Page 50: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  Plugin����������� ������������������  설치����������� ������������������  익숙한����������� ������������������  관리메뉴����������� ������������������  

Page 51: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  Plugin����������� ������������������  설치����������� ������������������  Plugin����������� ������������������  연동����������� ������������������  

Page 52: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  Plugin����������� ������������������  설치����������� ������������������  GITHUB����������� ������������������  연동����������� ������������������  

1 2

필터기능을 이용하여 Github OauthPlugin, Github Plugin, Git Plugin을 설치한다.

Page 53: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  Plugin����������� ������������������  설치����������� ������������������  GITHUB����������� ������������������  연동����������� ������������������  

1 2

필터기능을 이용하여 Install

Git Plugin Github Plugin

Github OauthPlugin

Page 54: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  시스템����������� ������������������  설정����������� ������������������  

< Todo List >

1. Java JDK 설정 2. Maven 설정 3. Git 설정

Page 55: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  시스템����������� ������������������  설정����������� ������������������  1.����������� ������������������  Java����������� ������������������  JDK����������� ������������������  Path����������� ������������������  설정����������� ������������������  

Page 56: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  시스템����������� ������������������  설정����������� ������������������  2.����������� ������������������  Maven����������� ������������������  Path����������� ������������������  설정����������� ������������������  

Page 57: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  시스템����������� ������������������  설정����������� ������������������  3.����������� ������������������  Git����������� ������������������  Path����������� ������������������  설정����������� ������������������  

Page 58: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  시스템����������� ������������������  설정����������� ������������������  3.����������� ������������������  Git����������� ������������������  Plugin설정����������� ������������������  

Page 59: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  작업����������� ������������������  설정하기����������� ������������������  ����������� ������������������  익숙한����������� ������������������  관리메뉴����������� ������������������  

Page 60: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  작업����������� ������������������  설정하기����������� ������������������  ����������� ������������������  새로운����������� ������������������  ITEM생성����������� ������������������  

Page 61: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  작업����������� ������������������  설정하기����������� ������������������  ����������� ������������������  ITEM����������� ������������������  설정����������� ������������������  ­–����������� ������������������  기본설정����������� ������������������  

링크연결

Page 62: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  작업����������� ������������������  설정하기����������� ������������������  ����������� ������������������  ITEM����������� ������������������  설정����������� ������������������  -����������� ������������������  소스����������� ������������������  코드����������� ������������������  관리����������� ������������������  

Page 63: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  작업����������� ������������������  설정하기����������� ������������������  ����������� ������������������  ITEM����������� ������������������  설정����������� ������������������  -����������� ������������������  Build����������� ������������������  Setting����������� ������������������  -����������� ������������������  1.����������� ������������������  Github����������� ������������������  hooking����������� ������������������  

Build when a change is pushed to Github =Github에 Push 요청이 들어올 경우 빌드한다. 이 기능을 사용하기 위해서는 Github에서 webhook기능을 사용할 수 있도록 설정해야 한다.

Page 64: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  Build����������� ������������������  ITEM����������� ������������������  설정����������� ������������������  -����������� ������������������  Build����������� ������������������  Setting����������� ������������������  -����������� ������������������  1.����������� ������������������  Github����������� ������������������  hooking����������� ������������������  

Page 65: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  Build����������� ������������������  ITEM����������� ������������������  설정����������� ������������������  -����������� ������������������  Build����������� ������������������  Setting����������� ������������������  -����������� ������������������  1.����������� ������������������  Github����������� ������������������  hooking����������� ������������������  

Page 66: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  Build����������� ������������������  ITEM����������� ������������������  설정����������� ������������������  -����������� ������������������  Build����������� ������������������  Setting����������� ������������������  -����������� ������������������  1.����������� ������������������  Github����������� ������������������  hooking����������� ������������������  

. . .

Page 67: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  Build����������� ������������������  ITEM����������� ������������������  설정����������� ������������������  -����������� ������������������  Build����������� ������������������  Setting����������� ������������������  -����������� ������������������  1.����������� ������������������  Github����������� ������������������  hooking����������� ������������������  

. . .

. . .

Page 68: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  Build����������� ������������������  ITEM����������� ������������������  설정����������� ������������������  -����������� ������������������  Build����������� ������������������  Setting����������� ������������������  -����������� ������������������  1.����������� ������������������  Github����������� ������������������  hooking����������� ������������������  

서버주소 + /github-webhook/

Page 69: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  Build����������� ������������������  ITEM����������� ������������������  설정����������� ������������������  -����������� ������������������  Build����������� ������������������  Setting����������� ������������������  -����������� ������������������  1.����������� ������������������  Github����������� ������������������  hooking����������� ������������������  

Page 70: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  Build����������� ������������������  Test����������� ������������������  Github����������� ������������������  webhook����������� ������������������  

NEXT 내부망에서는 GitHub Hooking을 사용할 수 없다.

GitHub Hooking Log

Page 71: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  Build����������� ������������������  ITEM����������� ������������������  설정����������� ������������������  -����������� ������������������  Build����������� ������������������  Setting����������� ������������������  -����������� ������������������  2.����������� ������������������  Schedule����������� ������������������   * 빌드예약하기 (Special Thanks to 선협)

Poll SCM의 표현방법은 다음과 같다.

1. T 다섯 개의 문자열로 이루어져 있다. 2. 각 문자열은 한 칸의 공백으로 분리된다. 3. 문자열의 의미는 다음과 같다. [ 분 (minute), 시(hour), 일(day), 월(month), 주(week) ] * 여기서 week는 0~7로 나타낼 수 있고 0과 7은 일요일이다. 1. 여러 라인을 입력할 수 있다. 2. *는 모든 경우를 만족한다. 3. M-N은 값의 범위를 나타낸다. 4. M-N/X는 M과 N사이의 스텝을 나타낸다. [ ex H 12 * * *의 경우 12시 0분에 실행될수도, 12시 30분에 실행될 수도 있다. 5. #이 맨 앞에 붙은 라인은 주석이다.

Poll SCM의 표현방법은 다음과 같다.

Poll SCM의 문법은 다음과 같다.

*M,N은 정수를 의미

Page 72: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  Build����������� ������������������  ITEM����������� ������������������  설정����������� ������������������  -����������� ������������������  Build����������� ������������������  Setting����������� ������������������  -����������� ������������������  2.����������� ������������������  Schedule����������� ������������������  

* 빌드예약하기 (Special Thanks to 선협)

1. 매일 15분 마다 빌드하기 [ H/15 * * * * ]

2. 매일 한 시간 중 30분 전 까지만 10분 마다 빌드하기 [ ex :04, :14, :24

[ H(0-29)/10 * * * * ] 3. 주말을 제외한 날에만 두 시간 마다 빌드하기 [ ex 10:38 AM, 12:38 PM, 02:39 PM…]

[ H 9-16/2 * * 1-5 ] 4. 12월을 제외하고 매월 1일, 15일에 빌드하기

[ H H 1,15 1-11 * ]

예제

Page 73: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  Build����������� ������������������  Test����������� ������������������  Git����������� ������������������  Polling����������� ������������������  Log����������� ������������������  

Page 74: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  Build����������� ������������������  ITEM����������� ������������������  설정����������� ������������������  -����������� ������������������  Build����������� ������������������  Setting����������� ������������������  

* http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html

Goals and options : clean package

Page 75: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  Authentication����������� ������������������  디렉토리����������� ������������������  권한����������� ������������������  변경����������� ������������������  

권한변경

<chown Reference> http://www.cyberciti.biz/faq/how-to-use-chmod-and-chown-command/

sudo chown -R tomcat7:tomcat7 /data/* sudo chown -R tomcat7:tomcat7 /usr/share/tomcat7/.jenkins/*

Page 76: 자바 웹프로젝트 개발환경 셋팅

Jenkins����������� ������������������  Build����������� ������������������  Post����������� ������������������  Build����������� ������������������  Setting����������� ������������������  

fab deploy

Page 77: 자바 웹프로젝트 개발환경 셋팅

����������� ������������������  감사합니다.����������� ������������������  

NHN����������� ������������������  NEXT����������� ������������������  /����������� ������������������  HumanDegisn����������� ������������������  Project����������� ������������������  /����������� ������������������  RollingPuppy����������� ������������������  Team����������� ������������������  /����������� ������������������  정윤성����������� ������������������