Spring
배포된 애플리케이션 git branch/commit 정보 바로 확인하기
ybs
2021. 12. 19. 01:40
반응형
먼저 build.gradle 에 플러그인을 추가한다. 이 플러그인은 git branch/commit 정보를 git.properties 파일로 만들어 준다.
plugins {
id "com.gorylenko.gradle-git-properties" version "2.2.3"
}
추가적으로 customProperty 도 넣을 수 있다. 더 자세한 내용은 여기에 있다.
gitProperties {
customProperty 'ybs.hello', 'world'
customProperty "project_version", { project.version }
}
컨트롤러에서는 아래와 같이 @Value 애노테이션으로 프로퍼티 git.properties 값을 가져올 수 있다.
@SpringBootApplication
@PropertySource(value = "classpath:/git.properties", ignoreResourceNotFound = true)
public class FixtureToyApplication {
public static void main(String[] args) {
SpringApplication.run(FixtureToyApplication.class, args);
}
@RestController
@RequestMapping(produces = MediaType.APPLICATION_JSON_VALUE)
public static class FixtureToyApplicationController {
private final String commitId;
private final String gitBranch;
private final String commitMessage;
private final String hello;
private final String projectVersion;
public FixtureToyApplicationController(
@Value("${git.commit.id:unset}") String commitId,
@Value("${git.branch:unset}") String gitBranch,
@Value("${git.commit.message.full:unset}") String commitMessage,
@Value("${ybs.hello:unset}") String hello,
@Value("${project_version:unset}") String projectVersion
) {
this.commitId = commitId;
this.gitBranch = gitBranch;
this.commitMessage = commitMessage;
this.hello = hello;
this.projectVersion = projectVersion;
}
@GetMapping("/")
public Map<String, Object> home() {
return Map.of(
"commitId", this.commitId,
"gitBranch", this.gitBranch,
"commitMessage", this.commitMessage,
"hello", this.hello,
"projectVersion", this.projectVersion
);
}
}
}
애플리케이션을 띄우고 /(root) 를 실행시키면 아래와 같이 나온다.
{
"commitId": "ba5ba2284414ccd9d2e95cd841858811cdc823e4",
"hello": "world",
"gitBranch": "master",
"projectVersion": "0.0.1-SNAPSHOT",
"commitMessage": "first commit\n"
}
반응형