▼ DevOps/젠킨스 (Jenkins)
Jenkins(젠킨스) | Gradle, Jar 빌드&배포하기
Valar
2021. 8. 23. 16:57
반응형
Jenkins 설치
Jenkins + GitHub | Item(프로젝트) 생성
▶ 구성환경
Eclipse, Jenkins, SpringBoot, Gradle, Jar, Linux, Java, GitHub
Step
- 프로젝트 build.gradle(bootJar, bootRun) 설정
- Jenkins 플러그인 설치
- Jenkins Global Tool Configuration 설정
- Jenkins Item(프로젝트) Build, 빌드 후 조치 구성
- Jenkins Build Now
build.gradle
bootJar, bootRun은 제일 마지막 라인에 추가한다.
//@SpringBootApplication이 선언된 MainClass 설정
bootJar {
mainClassName = 'com.melon.boot.MelonApplication'
}
...
//profiles 설정
bootRun {
String activeProfile = System.properties['spring.profiles.active']
systemProperty "spring.profiles.active", activeProfile
}
Jenkins 플러그인 설치
경로) Jenkins 관리 → 플러그인 관리
Gradle Plugin
=> Gradle 빌드를 위한 플러그인
Post build task
=> 빌드 로그를 판단해 batch/shell를 실행하는 플러그인
Jenkins Global Tool Configuration 설정
경로) Jenkins 관리 → Global Tool Configuration → Gradle
Name
=> 원하는 이름으로 작성
Version
=> 실제 프로젝트 Gradle 버전, gradle-wrapper.properties에 명시되어있음
Jenkins Item(프로젝트) Build, 빌드 후 조치 구성
Item(프로젝트) 상세 에서 구성 선택
Build
invoke Gradle script 선택 → Gradle Version 선택 (Global Tool Configuration에서 생성했던 버전)
Tasks에 bootJar
빌드 후 조치
Post build task 선택
=> Log text(로그에 남길 텍스트)
Script
=> nohup java -jar /var/lib/jenkins/workspace/[프로젝트명]/build/libs/[jar파일명] &
application.yml(또는 properties)이 아래와 같이 분리 되어 있다면 -DSpring.profiles.active 를 추가한다.
*Example
application-dev.yml, application-prod.yml
nohup java -jar -DSpring.profiles.active=dev /var/lib/jenkins/workspace/[프로젝트명]/build/libs/[jar파일명] &
Jenkins Build Now
Build Now(빌드 실행 후) → Build History → Console Output에서 로그 확인이 가능하다.
SpringBoot 프로젝트에서 기본으로 설정된 포트 8080으로 접속
*포트는 프로젝트 내에 설정에 따라 다를 수 있다.
실행된 프로세스 확인 및 종료하기
#실행중인 프로세스 출력
#java로 실행되고 있는 프로세스 출력
ps -ef | grep java
#해당 프로세스에 대한 출력
ps -ef | grep '프로세스명'
#실행중인 프로세스 종료
kill -9 [pid]
주기적으로 빌드하려면 Build Schedule 사용 (Item 상세 → 빌드 유발)
매일 오전 5시에
00 05 * * *
1시간마다
H * * * *
10분마다
H/10 * * * *
월~금요일, 오전 9시~오후 6시, 1시간마다
H 9-18/1 * * 1-5
일요일, 1시간마다
H * * * 7
nohup에 대한 자세한 설명
반응형