API查看Web App发布版本+编译时间+环境变量
项目环境: JDK7+Maven3.04
项目架构:SpringMVC
- 方法一:API访问Maven生成的MANIFEST.MF
1. 在pom.xml中添加jar包支持
<dependency>
<groupId>com.jcabi</groupId>
<artifactId>jcabi-manifests</artifactId>
<version>1.1</version>
</dependency>
2. pom.xml配置
配置archive添加
built-at: 编译时间
env: 环境
project-version: 代码分支号
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>artifact-package</id>
<phase>package</phase>
<goals>
<goal>war</goal>
</goals>
<configuration>
<archiveClasses>true</archiveClasses>
<warSourceExcludes>WEB-INF/lib/servlet-*</warSourceExcludes>
<archive>
<manifestEntries>
<built-at>${maven.build.timestamp}</built-at>
<env>${env}</env>
<project-version>${project.version}</project-version>
</manifestEntries>
</archive>
</configuration>
</execution>
<execution>
<id>local-package</id>
<phase>package</phase>
<goals>
<goal>exploded</goal>
</goals>
<configuration>
<primaryArtifact>false</primaryArtifact>
<webappDirectory>${project.build.directory}/hiv-local</webappDirectory>
<archiveClasses>true</archiveClasses>
<warSourceExcludes>WEB-INF/lib/servlet-*</warSourceExcludes>
<archive>
<manifestEntries>
<built-at>${maven.build.timestamp}</built-at>
<env>${env}</env>
<project-version>${project.version}</project-version>
</manifestEntries>
</archive>
</configuration>
</execution>
</executions>
</plugin>
3. 编译后结果如下
META-INF/MANIFEST.MF
Manifest-Version: 1.0
Built-By: dell
Build-Jdk: 1.7.0_75
project-version: develop-SNAPSHOT
Created-By: Apache Maven 3.0.4
built-at: 2015-07-02 13:35:38
env: qa
Archiver-Version: Plexus Archiver
4. 配置API访问编译结果并输出
@Controller
public class VersionController {
@Resource
private ServletContext context; @ResponseBody
@RequestMapping(value = "/version", method = RequestMethod.GET)
@ApiOperation(value = "查看编译版本", response = Map.class, httpMethod = "GET", notes = "查看编译版本")
public Map<String, String> version(HttpServletRequest request) throws IOException {
Map<String, String> map = new HashMap<String, String>();
MfMap mfMap = Manifests.DEFAULT.append(new ServletMfs(context));
map.put("project-version", mfMap.get("project-version"));
map.put("env", mfMap.get("env"));
map.put("built-at", mfMap.get("built-at"));
return map;
}
}
5. 打成war包启动结果如下:
{"project-version":"develop-SNAPSHOT","built-at":"2015-07-02 13:35:38","env":"qa"}
参考资料: http://manifests.jcabi.com/
- 方法二:使用maven生成变量
1. 在pom.xml文件中配置
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.build.timestamp.format>yyyy-MM-dd HH:mm:ss</maven.build.timestamp.format>
<timestamp>${maven.build.timestamp}</timestamp>
</properties>
2. 在properties文件中配置
project.version=${project.version}
project.env=${env}
project.built.time=${timestamp}
3. 配置API访问编译结果并输出
@Controller
public class VersionController {
@Value("${project.version}")
private String version;
@Value("${project.env}")
private String env;
@Value("${project.built.time}")
private String builtAt; @ResponseBody
@RequestMapping(value = "version", method = GET)
@ApiOperation(value = "查看版本信息")
public Map<String, String> version() {
Map<String, String> map = new HashMap<String, String>();
map.put("project-version", version);
map.put("env", env);
map.put("built-at", builtAt);
return map;
} }
API查看Web App发布版本+编译时间+环境变量的更多相关文章
- 如何在cmd命令行中查看、修改、删除与添加环境变量,语法格式例子:set path;echo %APPDATA%
如何在cmd命令行中查看.修改.删除与添加环境变量 首先明确一点: 所有的在cmd命令行下对环境变量的修改只对当前窗口有效,不是永久性的修改.也就是说当关闭此cmd命令行窗口后,将不再起作用.永久性修 ...
- windows10系统修改JDK版本后配置环境变量不生效怎么办
之前安装了个jdk8版本,今天突然想安装个更新版本的jdk11来用,但在安装好JDK11并配置环境变量后发现修改JDK版本后配置的环境变量不生效的.本文就给大家分享一下windows10系统修改JDK ...
- java运行机制、Jdk版本及Java环境变量
一.语言特性 计算机高级语言按程序的执行方式可分为:编译型和解释型两种.编译型的语言是指使用专门的编译器,针对特定的平台(操作系统)一次性翻译成被该平台硬件执行的机器码,并包装成该平台可执行性程序文件 ...
- linux查看java jdk安装路径和设置环境变量
一:查看类型 windows: set java_home:查看JDK安装路径 java -version:查看JDK版本 linux: whereis java which java (java执行 ...
- Windows 如何在cmd命令行中查看、修改、删除与添加环境变量
转自:http://www.cnblogs.com/saptechnique/archive/2013/02/17/2914222.html 首先明确一点: 所有的在cmd命令行下对环境变量的修改只对 ...
- appium---【已解决】【Mac】如何查看java的安装路径及JAVA_HOME环境变量的配置
报错截图:根据提示可以看出,JAVA_HOME的环境变量配置错误,需要重新配置. 1.查看Java版本 打开mac电脑,查看java版本,打开终端Terminal,通过命令查看java的版本 Luck ...
- Windows的命令行查看,修改,删除,添加环境变量
查看当前所有可用的环境变量:输入 set 即可查看. 显示某环境变量: 例如:echo %SystemDrive% 类似linux下面的echo $PATH这种用法. 首先明确一点:所有的在cmd命令 ...
- 周一01.3Python多版本共存&pip环境变量设置
python多版本共存 1.分别安装Python2.7(手动添加环境变量)与Python3.6 2.分别进入Py2与Py3文件夹中,复制python.exe,重命名为python2.exe和pytho ...
- windows下 两个版本的JDK环境变量进行切换 MARK
我们平时在window上做开发的时候,可能需要同时开发两个甚至多个项目,有时不同的项目对JDK的版本要求有区别,为了简化操作,我们可以通过批处理文件来完成环境变量切换的任务.使用方法:阅读代码我们就会 ...
随机推荐
- js 单例模式笔记
单例指一个类只有一个实例,这个类自行创建这个实例. 利用对象字面量直接生成一个单例: var singleton = { prop: 1, method: function(){ console.lo ...
- django queryset values&values_list
values返回是字典列表; values_list返回的是元组列表, values_list加上 flat=True 1 1 之后返回值列表
- 关于leetcode中链表中两数据相加的程序说明
* Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ ...
- Node.js学习-1
关于node.js 首先,node.js不是一门语言,是一个平台.因为在以前,javascript主要是用于网页的交互,所以必须依附于浏览器存在,只有在浏览器上才能运行javascript. 后来ja ...
- sqllite 入门
链接: http://www.jb51.net/article/52064.htm
- /etc/ethers【地址映射】
该文件存放硬件地址和 IP 地址的映射关系. 格式如下: 00-00-00-00-00-00 0:0:0:0 每一行代表一个 IP 地址.
- gulp 插件
原文链接:http://www.mamicode.com/info-detail-517085.html gulp是什么? http://gulpjs.com/ 相信你会明白的! 与著名的构建工具gr ...
- 使用SQL语句查询每张表的column name
exec sp_columns tableName 上面这行代码可以查出该表所有的column,改为sp_pkeys,可以查出该表的主键.但是我如果想只查出column name,select COL ...
- 线性表-双向链表(LinkedList)
双向链表:如图1-3 所示,会把当前header拆分开,重新插入一个Entry<E>. LinkedList源码 0.首先这个类中的两个变量 private transient Entry ...
- Linux 的文本处理命令一览
grep 基于关键字搜索文本内容 -i 搜索时忽略大小写-n 显示结果所在行数-v 输出不带关键字的行-Ax 在输出的时候包含结果所在行之后的指定行数(x为一个数值,表示输出后面x行)-Bx 在输出的 ...