diff --git a/kafka-manager-common/src/main/java/com/xiaojukeji/kafka/manager/common/utils/GitPropUtil.java b/kafka-manager-common/src/main/java/com/xiaojukeji/kafka/manager/common/utils/GitPropUtil.java new file mode 100644 index 0000000000000000000000000000000000000000..297b8135a9c68fbff97c099e1f40d1ba00630cf1 --- /dev/null +++ b/kafka-manager-common/src/main/java/com/xiaojukeji/kafka/manager/common/utils/GitPropUtil.java @@ -0,0 +1,67 @@ +package com.xiaojukeji.kafka.manager.common.utils; + + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.Properties; + +public class GitPropUtil { + private static final Logger log = LoggerFactory.getLogger(GitPropUtil.class); + + private static Properties props = null; + + public static final String VERSION_FIELD_NAME = "git.build.version"; + + public static final String COMMIT_ID_FIELD_NAME = "git.commit.id.abbrev"; + + public static String getProps(String fieldName) { + if (props == null) { + props = JsonUtils.stringToObj(readGitPropertiesInJarFile(), Properties.class); + } + + return props.getProperty(fieldName); + } + + public static Properties getProps() { + if (props == null) { + props = JsonUtils.stringToObj(readGitPropertiesInJarFile(), Properties.class); + } + + return props; + } + + private static String readGitPropertiesInJarFile() { + InputStream inputStream = null; + try { + inputStream = GitPropUtil.class.getClassLoader().getResourceAsStream("git.properties"); + + BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); + String line = null; + + StringBuilder sb = new StringBuilder(); + while ((line = bufferedReader.readLine()) != null) { + sb.append(line).append("\n"); + } + return sb.toString(); + } catch (Exception e) { + log.error("method=readGitPropertiesInJarFile||errMsg=exception.", e); + } finally { + try { + if (inputStream != null) { + inputStream.close(); + } + } catch (Exception e) { + log.error("method=readGitPropertiesInJarFile||msg=close failed||errMsg=exception.", e); + } + } + + return "{}"; + } + + private GitPropUtil() { + } +} diff --git a/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/utils/ConfigUtils.java b/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/utils/ConfigUtils.java index 40b73868f0f4711e7c55d440ed406a955d1a4486..9ec66c8bb539e5db1b824966c07ac4a79a6de3e2 100644 --- a/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/utils/ConfigUtils.java +++ b/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/utils/ConfigUtils.java @@ -20,7 +20,4 @@ public class ConfigUtils { @Value(value = "${spring.profiles.active:dev}") private String kafkaManagerEnv; - - @Value(value = "${spring.application.version:unknown}") - private String applicationVersion; } diff --git a/kafka-manager-web/pom.xml b/kafka-manager-web/pom.xml index ec979f2a7506f54b9b5b6d7e97be2ae2c53abe45..2ba86f67d8feebf43e20ceae9c947ecdce830168 100644 --- a/kafka-manager-web/pom.xml +++ b/kafka-manager-web/pom.xml @@ -114,7 +114,6 @@ kafka-manager - org.springframework.boot spring-boot-maven-plugin @@ -126,7 +125,25 @@ + + + pl.project13.maven + git-commit-id-plugin + + + + revision + + + + + true + yyyy-MM-dd'T'HH:mm:ssZ + true + ${project.build.outputDirectory}/git.properties + json + diff --git a/kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/config/SwaggerConfig.java b/kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/config/SwaggerConfig.java index f8406cfe1adacb4f30602afca0c8a11e75f04c19..c1939c381dbd70e7cfc89cb7da6ba9e4beb22d44 100644 --- a/kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/config/SwaggerConfig.java +++ b/kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/config/SwaggerConfig.java @@ -1,7 +1,6 @@ package com.xiaojukeji.kafka.manager.web.config; -import com.xiaojukeji.kafka.manager.service.utils.ConfigUtils; -import org.springframework.beans.factory.annotation.Autowired; +import com.xiaojukeji.kafka.manager.common.utils.GitPropUtil; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.*; @@ -22,9 +21,6 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2; @EnableWebMvc @EnableSwagger2 public class SwaggerConfig implements WebMvcConfigurer { - @Autowired - private ConfigUtils configUtils; - @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/"); @@ -43,10 +39,13 @@ public class SwaggerConfig implements WebMvcConfigurer { } private ApiInfo apiInfo() { + String version = GitPropUtil.getProps(GitPropUtil.VERSION_FIELD_NAME); + String commitId = GitPropUtil.getProps(GitPropUtil.COMMIT_ID_FIELD_NAME); + return new ApiInfoBuilder() .title("LogiKM接口文档") .description("欢迎使用滴滴LogiKM") - .version(configUtils.getApplicationVersion()) + .version(String.format("%s-%s", version == null? "": version, commitId == null? "": commitId)) .build(); }