본문 바로가기
Dev/DevOps

jenkins 이용해 gradle프로젝트 패키징하기

by 갓연쥬 2017. 7. 13.

프로젝트 환경

-java web

-gradle

-spring

-gitlab


하고싶은 거

자바 프로젝트를 gitlab의 develop브랜치에 소스커밋후 푸시 하면 젠킨스가 자동으로 gradle 빌드 컴파일을 한 후 jar파일로 패키징하기


일단 git flow를 쉽게 사용하기위해 소스트리 설치하고 gitlab소스 클론.


1. 젠킨스와 gitlab연동 

젠킨스에서 gitlab 플러그인 설치

참고 Gitlab과 Jenkins 연동 http://egloos.zum.com/mcchae/v/11246199


URL입력할때 SSH로 하면 안돼서 https URL로..


소스 develop브랜치에 푸시했을 경우 빌드됨


2.젠킨스에서 gradle로 빌드 후 jar파일 생성하기(공용 Job생성)

공용 Job이란 빌드 후 진행될 과정에 대한 Job이다.


빌드 추출물을 중앙 원격 서버로 전송하는 scp Job, 중앙 원격 서버의 배포스크립트를 실행하는 deploy Job이 있다고 한다.


원격서버?

Public over SSH 플러그인 설치

SSH로 접속할 대상 서버의 정보를 입력 후 저장

buildscript{
ext{
springBootVersion = '1.5.4.RELEASE'
gradleSshVersion = '2.2.0'
}
repositories{
mavenCentral()
}
dependencies{
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
classpath("org.hidetake:gradle-ssh-plugin:${gradleSshVersion}")
}
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'org.hidetake.ssh'
apply plugin: 'application'

sourceCompatibility = 1.8
mainClassName = 'god.yeonju.SpringBootActuatorApplication'

jar {
manifest {
attributes 'Title': 'My Application', 'Version': version, 'Main-Class': mainClassName
}
archiveName 'MyApp.jar'
dependsOn configurations.runtime
from {
configurations.compile.collect {it.isDirectory()? it: zipTree(it)}
}
}

repositories {
mavenCentral()
}

dependencies {
compile('org.springframework.boot:spring-boot-starter-web')
compile("org.springframework.boot:spring-boot-devtools")
// compile('org.springframework.boot:spring-boot-starter-security')
compile('org.apache.tomcat.embed:tomcat-embed-jasper')
compile('javax.servlet:jstl:1.2')
compile('org.json:json')
testCompile group: 'junit', name: 'junit', version: '4.12'
}

task print{
doLast{
println "gitlab push complete"
println "gitlab develop push complete"
}
}
processResources{
filesMatching("**/application.yml"){
expand(project.properties)
}
}

build.gradle 파일



처음에 SSH설정까지하고 왜 jar파일 생성이 안될까 막혔는데 Tasks에 jar입력하고 빌드시켜봤더니 파일이 생성됐다 ㅠ 감격


참고 docker를 이용한 CI 구축 연습하기 (젠킨스, 슬랙) http://jojoldu.tistory.com/139

Jenkins와 SSH를 이용한 배포 연동 http://hreeman.tistory.com/m/136

젠킨스 사용하여 자동 배포환경 만들어보기 http://kingbbode.tistory.com/35

Gradle Java Plugin http://kwonnam.pe.kr/wiki/gradle/java



'Dev > DevOps' 카테고리의 다른 글

DevOps와 CI  (0) 2017.07.18
ansible  (0) 2017.07.18
jenkins 사용법  (0) 2017.07.13
Docker  (0) 2017.07.12
jenkins  (0) 2017.07.12

댓글