Git을 사용하면 여러 branch 전략이 있다.
많은 전략 중 development branch에서 지속적으로 개발후에 특정 시점에 release브랜치로 배포를 나가는 전략을 사용할 수 도 있다.
상기와 같은 전략을 사용할 경우 release/1.0.1 혹은 release/2.1.3 과 같은 이름으로 release 버젼을 따게 된다.
이 때 jar파일을 생성할때 자동으로 versioning이 가능하도록 하는 방법에 대해 설명하고자 한다.
기존 gradle
build.gradle
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | buildscript { repositories { maven { url 'http://repo.mycompany.com/maven2' } } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.0.RELEASE") classpath "io.franzbecker:gradle-lombok:1.8" } } apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'idea' apply plugin: 'org.springframework.boot' apply plugin: "io.franzbecker.gradle-lombok" apply plugin: 'io.spring.dependency-management' sourceCompatibility = 1.8 targetCompatibility = 1.8 bootJar { baseName = 'sample-java-project' } repositories { maven { url "http://repo.mycompany.com/maven2" } } dependencies { ...필요한 디펜던시들... } | cs |
생성물 : sample-project.jar
versioning 가능한 gradle
build.gradle
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | buildscript { repositories { maven { url 'http://repo.mycompany.com/maven2' } } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.0.RELEASE") classpath "io.franzbecker:gradle-lombok:1.8" } } plugins { id 'org.ajoberstar.grgit' version '1.7.1' } ext { git = org.ajoberstar.grgit.Grgit.open() gitBranchName = git.branch.current.name.replaceAll(/(.*)\//, '') } apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'idea' apply plugin: 'org.springframework.boot' apply plugin: "io.franzbecker.gradle-lombok" apply plugin: 'io.spring.dependency-management' sourceCompatibility = 1.8 targetCompatibility = 1.8 version = gitBranchName bootJar { baseName = 'sample-java-project' } repositories { maven { url "http://repo.mycompany.com/maven2" } } dependencies { ...필요한 디펜던시들... } | cs |
setting.gradle
1 | rootProject.name = 'sample-java-project' | cs |
생성물(master브랜치일 경우) : sample-project-master.jar생성물(release/1.0.3브랜치일 경우) : sample-project-1.0.3.jar
- setting.gradle에 rootProject를 셋팅하고, org.ajoberstar.grgit플러그인(사이트 바로가기)를 사용하면 효과적으로 버져닝 가능하다.
build.gradle에 추가된 부분은 아래와 같다.
1 2 3 4 5 6 7 8 9 10 11 12 | plugins { id 'org.ajoberstar.grgit' version '1.7.1' } ext { git = org.ajoberstar.grgit.Grgit.open() gitBranchName = git.branch.current.name.replaceAll(/(.*)\//, '') } ... version = gitBranchName | cs |
End of Document.
반응형
'DevOps > Project management' 카테고리의 다른 글
효과적인 소프트웨어 문서를 적는 방법 (414) | 2019.01.02 |
---|---|
[Gradle]기본 클래스 org.gradle.wrapper.GradleWrapperMain을(를) 찾거나 로드할 수 없습니다. 해결법 (968) | 2018.06.19 |
개발자 생산성을 200% 늘리는 git client 추천 - GitKraken (1460) | 2018.05.22 |
How to use Intellij Sequence Diagram plugin (0) | 2017.07.07 |
Simple Spring 4 MVC Hello world Example with gradle (0) | 2017.06.18 |
Gradle build tool 4.0 가이드 (0) | 2017.06.17 |