[스프링부트] 빌드시 깃 커밋버전 정보 포함시키기

지금 개발하고 있는 애플리케이션은 깃 플로우git flow 를 이용해서 출시하고 있다. 출시할 때는 출시release 기능을 이용해서 master 브랜치에 태그를 생성하고 이를 배포하는 형태로 개발하고 있다.

애플리케이션을 사용하고 있는 필드가 늘어나고 있는데, 이 필드에 배포된 변경이력만으로는 어디까지 개발된 애플리케이션인지 알 수가 없다. 그러다가 스프링부트에서 Git commit information 를 빌드파일이 포함시킬 수 있는 부분을 확인한다. 빌드되는 시점에 커밋정보git.properties 에 저장하여 함께 배포하는 기능이다.

이 기능을 사용하려면,

JDK8 에서 빌드되어야 한다.


gradle-git-properties 사용절차

gradle-git-properties 플러그인 추가

  • 참고: com.gorylenko.gradle-git-properties

    Produce git.properties for spring-boot-actuator

  • build.gradle 수정

    buildscript {
        ext {
          springBootVersion = '1.3.2.RELEASE'
        }
        repositories {
          mavenCentral()
          maven {
                url "https://plugins.gradle.org/m2/"  //gradle 플러그인 URL
              }
        }
        dependencies {
          classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
          classpath "gradle.plugin.com.gorylenko.gradle-git-properties:gradle-git-properties:1.4.11" // gradle-git-properties
        }
    }
     
    apply plugin: "com.gorylenko.gradle-git-properties"


빌드!


빌드 후 결과

  • 빌드된 배포파일 압축을 해제해보면 다음과 같은 구조로 되어 있다. gradle build 생성물 압축해제 그림

    • git.properties
      #
      #Fri Feb 26 10:40:36 KST 2016
      git.commit.id=bad6de66e0ecc9a2f2e2402fdac88f63d88a2305
      git.commit.time=1456448574
      git.commit.user.name=ihoneymon
      git.commit.id.abbrev=bad6de6
      git.branch=release/1.0.1.RELEASE
      git.commit.message.short=\#38 Code cleaning
      git.commit.user.email=ihoneymon@gmail.com
      git.commit.message.full=\#38 Code cleaning\n


액츄에이터 기능 중 info 가 활성화 되어 있다면!!

다양한 버전의 애플리케이션 배포본이 존재할 때 어떤 버전으로 운영되고 있는지 확인하는데 요긴할 듯 하다.

+ Recent posts