1、打包时自动生成版本信息及git提交信息;2、优化swagger对版本信息的获取

This commit is contained in:
zengqiao
2022-06-23 10:17:36 +08:00
parent bd62212ecb
commit 7074bdaa9f
4 changed files with 90 additions and 10 deletions

View File

@@ -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() {
}
}

View File

@@ -20,7 +20,4 @@ public class ConfigUtils {
@Value(value = "${spring.profiles.active:dev}") @Value(value = "${spring.profiles.active:dev}")
private String kafkaManagerEnv; private String kafkaManagerEnv;
@Value(value = "${spring.application.version:unknown}")
private String applicationVersion;
} }

View File

@@ -114,7 +114,6 @@
<build> <build>
<finalName>kafka-manager</finalName> <finalName>kafka-manager</finalName>
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId> <artifactId>spring-boot-maven-plugin</artifactId>
@@ -126,7 +125,25 @@
</goals> </goals>
</execution> </execution>
</executions> </executions>
</plugin>
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>revision</goal>
</goals>
</execution>
</executions>
<configuration>
<verbose>true</verbose>
<dateFormat>yyyy-MM-dd'T'HH:mm:ssZ</dateFormat>
<generateGitPropertiesFile>true</generateGitPropertiesFile>
<generateGitPropertiesFilename>${project.build.outputDirectory}/git.properties</generateGitPropertiesFilename>
<format>json</format>
</configuration>
</plugin> </plugin>
</plugins> </plugins>
</build> </build>

View File

@@ -1,7 +1,6 @@
package com.xiaojukeji.kafka.manager.web.config; package com.xiaojukeji.kafka.manager.web.config;
import com.xiaojukeji.kafka.manager.service.utils.ConfigUtils; import com.xiaojukeji.kafka.manager.common.utils.GitPropUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.*; import org.springframework.web.servlet.config.annotation.*;
@@ -22,9 +21,6 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2;
@EnableWebMvc @EnableWebMvc
@EnableSwagger2 @EnableSwagger2
public class SwaggerConfig implements WebMvcConfigurer { public class SwaggerConfig implements WebMvcConfigurer {
@Autowired
private ConfigUtils configUtils;
@Override @Override
public void addResourceHandlers(ResourceHandlerRegistry registry) { public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
@@ -43,10 +39,13 @@ public class SwaggerConfig implements WebMvcConfigurer {
} }
private ApiInfo apiInfo() { private ApiInfo apiInfo() {
String version = GitPropUtil.getProps(GitPropUtil.VERSION_FIELD_NAME);
String commitId = GitPropUtil.getProps(GitPropUtil.COMMIT_ID_FIELD_NAME);
return new ApiInfoBuilder() return new ApiInfoBuilder()
.title("LogiKM接口文档") .title("LogiKM接口文档")
.description("欢迎使用滴滴LogiKM") .description("欢迎使用滴滴LogiKM")
.version(configUtils.getApplicationVersion()) .version(String.format("%s-%s", version == null? "": version, commitId == null? "": commitId))
.build(); .build();
} }