진이의 Developer Story
스프링 Maven Project - GIT - 젠킨스(jenkins) 연동하기 본문
1. Credentials 생성
Credentials을 클릭합니다. (SSH Private Key를 등록해야 합니다)
이 작업을 하기 이전에 public 키와 private 키를 한쌍 만드셔야 합니다.
$ ssh-keygen -t rsa
Enter file in which to save the key (/root/.ssh/id_rsa): # 경로 적고 엔터
Enter passphrase (empty for no passphrase): # 비밀번호를 쓸 경우 입력하고 아닌 경우는 엔터
이렇게 하시면 ssh-key 한쌍이 만들어집니다.
Add Credentials 를 누르시고 Credentials 를 만듭니다.
$ vi ~/.ssh/id_rsa
vi 편집기로 private key를 열어 복사해주신 후, Key안에 넣어주시고 저장해주세요.
2. maven 설정
Maven Integration plugin 플러그인을 설치(Jenkins관리 > 플러그인 관리 > 설치 가능 탭에서 검색) 하시고, Jenkins 관리 > Global Tool Configuration 메뉴를 클릭합니다.
JDK, Git, Maven을 각각 설정에 맞게 적어주세요.
Install automatically 옵션을 이용하시면 자동 설치가 가능하지만, 저는 수동으로 설치하고 설치된 경로를 적었습니다.
설치 방법은 따로 적지 않겠습니다.
git의 경우는 whereis git 을 타이핑하시면 설치경로를 얻을 수 있습니다.
(단, 환경 변수를 등록했을 경우 따로 안해주셔도 됩니다.)
여기까지 하셨다면 기본 설정은 왠만큼 끝났습니다.
3. JOB 만들고 BUILD 하기
Dashboard에서 새로운 ITEM 메뉴를 클릭합니다.
프로젝트 이름을 적고 Maven Project를 누르시고 확인을 클릭해주세요.
그럼 프로젝트가 만들어집니다.
중요한 부분은 소스 코드 관리 부분입니다.
저는 로컬에 git을 설치하였기 아래와 같이 적었습니다.
(연결정보가 틀리다면 아래와 같이 나옵니다. 참고하시면 될듯합니다.)
Failed to connect to repository : Command "/usr/bin/git ls-remote -h ssh://*.*.*.*:22/home/git_repo/exam.git HEAD" returned status code 128:
stdout:
stderr: ssh: Could not resolve hostname *.*.*.*: Name or service not known
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
그리고 Credentials에서는 위에서 만든 것을 선택해주세요.
마지막으로 빌드 후 조치라는 것이 있습니다.
빌드를 완료했을 때 뭘 할꺼냐는 건데, 저같은 경우에는 모든 war 파일을 webapps 밑에 복사하도록 해두었습니다.
exec란에 cp maven_project.war /usr/local/tomcat/webapps/maven_project.war 와 같이 적었습니다.
server.xml 에 server를 미리 추가해주셨다면, 톰캣만 내렸다 올려주시면 반영이 완료되는거죠, 이것 마저 귀찮다면 위와 같이 후속처리로 해주실 수도 있습니다.
[참고 - 젠킨스 서버와 웹 서버가 다른 경우]
publish over ssh, publish over ftp 플러그인을 이용하여 다른 서버로 전송시킬 수 있습니다. 해당 방법은 기회가 된다면 나중에 포스팅하도록 해볼께요.
'Java > Spring' 카테고리의 다른 글
@ControllerAdvice를 이용한 커스텀 에러 처리 (0) | 2016.12.04 |
---|---|
Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/]] (0) | 2016.11.28 |
Spring JavaMailSender 를 이용하여 메일보내기 (0) | 2016.11.17 |
Spring MVC를 활용한 스마트에디터 2.0 이미지 업로드 (6) | 2016.11.14 |
Apache PDFBOX (pdf to image) (1) | 2016.10.27 |