본문 바로가기
공부/프로그래밍

[SpringBoot] Jenkins, SpringBoot, Gradle 사용 Jar로 빌드, 배포

by demonic_ 2018. 8. 12.
반응형

서버에 Git, Gradle, JAVA 등이 설치 되어있어야 합니다.


리눅스에 Gradle이 설치되어 있지 않다면 아래 포스트를 참조하세요.


[Lunux] gradle 4.x 설치

http://lemontia.tistory.com/657



작업순서는 다음과 같습니다.

1. 관련 플러그인 다운로드

  - Jenkins 관리 => 플러그인 관리 에서 가능

    : Bitbucket Plugin

    : Gradle Plugin

    : Post build task Plugin => 빌드로그를 판단해 batch/shell 를 실행하는 플러그인

2. 툴 관리에서 Gradle 등록 

  - Jenkins 관리 => Global Tool Configuration 이동

  - Gradle 등록

3. 빌드할 아이템 등록





1. 관련 플러그인 다운로드


Jenkins 관리 => 플러그인 관리 에 들어갑니다.

설치가능에 Bitbucket Plugin 검색하여 설치합니다.



Gradle Plugin 을 검색해 설치합니다.



post build 를 검색해 설치합니다.




2. 툴 관리에서 Gradle 등록 


제가 설치한 서버는 Gradle 4.9 를 설치했습니다.

그래서 GRADLE_HOME 에 설치위치를 등록합니다.

그리고 install automatically 의 체크를 해제합니다.




3. 빌드할 아이템 등록


대시보드로 이동한 후에 새로운 Item 을 클릭하여 생성합니다.



Item 이름을 입력하고 Freestyle project를 선택한 후 하단에 OK를 누릅니다.



소스 코드 관리에서 BitBucket에 올린 코드주소를 입력합니다.

일반 Git 서버가 있다면 그것을 사용해도 됩니다.



그리고 Credentials 를 등록해야 하는데 ADD버튼을 눌러 등록을 합니다.

Username 과 Password를 입력하여 계정등록을 해둡니다.


.


Build when a change is pushed to BitBucket 를 체크합니다.

위에서 설치한 Bitbucket Plugin 을 설치하지 않았다면 해당 항목은 보이지 않습니다.



Build 에서는 Invoke Gradle를 체크한 후 위에서 등록한 Gradle_4_9 를 등록합니다.

Task 에는 bootJar 을 등록합니다.



빌드 후에 shell 입력을 통해 실행되도록 할 것입니다.

빌드 후 조치 에서 '빌드 후 조치 추가'를 클릭하면  위에서 설치한 'Post build task'이 있습니다.

클릭해서 Log text 에는 BUILD SUCCESSFUL  를 입력합니다.

빌드에 실패했는데 서버를 다시 띄우면 위험하니 꼭 성공한 후에만 실행하도록 합니다.


그리고 스크립트 내용에는 다음을 추가합니다.

nohup java -jar build/libs/[jar이름] &





이제 모든설정이 끝났습니다. 

생성한 아이템으로 들어가서 Build Now 를 클릭해 실행합니다.




실행 한 후에 로그를 보면 스크립트를 실행한 흔적을 볼 수 있습니다.


1
2
3
4
5
6
7
BUILD SUCCESSFUL in 6s
3 actionable tasks: 1 executed, 2 up-to-date
Build step 'Invoke Gradle script' changed build result to SUCCESS
Performing Post build task...
Match found for :BUILD SUCCESSFUL : True
Logical operation result is TRUE
Running script  : nohup java -jar build/libs/[jar이름] &
cs


서버에서 확인해보면 build 폴더가 생겼고 하위 libs 에 들어가면 .jar 파일이 생성된 것을 확인할 수 있습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
drwxr-xr-7 jenkins jenkins  183 Aug  9 18:33 .
drwxr-xr-6 jenkins jenkins   98 Aug  9 18:10 ..
drwxr-xr-6 jenkins jenkins   61 Aug  9 18:33 build
-rw-r--r-- 1 jenkins jenkins 1302 Aug  9 14:48 build.gradle
drwxr-xr-8 jenkins jenkins  162 Aug  9 18:33 .git
-rw-r--r-- 1 jenkins jenkins  276 Aug  9 14:48 .gitignore
drwxr-xr-3 jenkins jenkins   21 Aug  9 14:48 gradle
drwxr-xr-6 jenkins jenkins   76 Aug  9 18:33 .gradle
-rw-r--r-- 1 jenkins jenkins 5299 Aug  9 14:48 gradlew
-rw-r--r-- 1 jenkins jenkins 2176 Aug  9 14:48 gradlew.bat
-rw-r--r-- 1 jenkins jenkins  195 Aug  9 14:48 README.md
-rw-r--r-- 1 jenkins jenkins   39 Aug  9 14:48 settings.gradle
drwxr-xr-4 jenkins jenkins   30 Aug  9 14:48 src
cs


완료



반응형

댓글