Git의 태그나 흩어진 정보를 버전 정보로 삽입하기 (Gradle)
작업을 확인하는 버전은 다음과 같습니다.
포함할 정보
어떤 상태에서 생성되는지 알기 위해 다음과 같이 설정합니다.
version
속성(jar 또는 라이브러리 버전에 추가됨):Giit의 라벨 정보를 기반으로 한
v1.1.2
이면 라벨이 1.1.2
이다.v1.0.0-beta1
가 되면1.0.0-beta1
의 형식으로 한다.-beta1
부분도 문제 없음META-INF/MANIFEST.MF
의Implementation-Version
:Giit 태그 + 제출 해시 값도 추가되었습니다.
v1.1.2
라면 산열(8비트)1.1.2.f15325d3
도 부여한다.v1.0.0-beta1
로 바뀌면1.1.2-beta1.f15325d3
의 형식이다.com.palantir.git-version 플러그인
Git의 다양한 정보를 얻기 위해palantir.git-version 플러그인을 사용합니다.
git describe --tags --always --first-parent
와 같은 정보를 얻을 수 있습니다.build.gradle 설정
build.gradle
의 설정 내용입니다.전체에 관해서는 아래의 내용을 참조하시오.
플러그인 추가
com.palantir.git-version을 사용하는 플러그인을 지정합니다.
plugins {
id 'java'
id 'com.palantir.git-version' version '0.12.3'
}
version 속성, Implementation-Version으로 설정
Gradle의
version
속성에 탭 정보 기반 정보를 설정합니다.또한
META-INF/MANIFEST.MF
의 Implementation-Version
에 라벨+해시 정보를 설정합니다.def gitInfo = versionDetails()
version = gitInfo.lastTag.substring(1)
def implementationVersion = version + '.' + gitInfo.gitHash[0..7]
jar {
manifest {
attributes(
'Implementation-Version' : implementationVersion
)
}
}
이 설정이 종료되었습니다.(첨부) 프로그램에서 Implementation-Version 정보 가져오기
META-INF/MANIFEST.MF
의Implementation-Version
를 프로그램에서 얻을 수 있습니다.package com.github.onozaty.embed;
public class Main {
public static void main(String[] args) {
String implementationVersion = getImplementationVersion();
System.out.println("implementationVersion: " + implementationVersion);
}
private static String getImplementationVersion() {
return Main.class.getPackage().getImplementationVersion();
}
}
프로그램이 시작될 때의 로그로 표시되면 어느 버전이 실행되었을 때의 로그인지 쉽게 알 수 있습니다.그나저나 Spring Boot은 시작할 때
Implementation-Version
의 정보를 읽고 시작 로그로 출력합니다.2022-01-07 00:10:11.145 INFO 11772 --- [ main] com.example.demo.DemoApplication : Starting DemoApplication v1.0.0-beta1.86ea7f27 using Java 1.8.0_222 on PCXX with PID 11772 (F:\demo\demo-1.0.0-beta1.jar started by onozaty in F:\demo)
Reference
이 문제에 관하여(Git의 태그나 흩어진 정보를 버전 정보로 삽입하기 (Gradle)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/onozaty/articles/embed-git-version-java-gradle텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)