반응형
먼저 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"
}
반응형
'Spring' 카테고리의 다른 글
ObjectMapper (0) | 2022.01.15 |
---|---|
kafka transaction(exactly once semantic) (0) | 2022.01.09 |
WebClient 사용할때 주의 (6편) (0) | 2021.12.15 |
application warm up (2) | 2021.12.05 |
json error stack trace print 여부 커스텀 프로퍼티 (0) | 2021.11.22 |