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的版本要求有区别,为了简化操作,我们可以通过批处理文件来完成环境变量切换的任务.使用方法:阅读代码我们就会 ...
随机推荐
- [转]抓取安卓APP内接口的方法--Charles
http://blog.csdn.net/yyh352091626/article/details/52759294
- Android微信智能心跳方案 (转)
原创 2015-08-17 phoenix WeMobileDev 前言:在13年11月中旬时,因为基础组件组人手紧张,Leo安排我和春哥去广州轮岗支援.刚到广州的时候,Ray让我和春哥对Line和W ...
- iOS runtime 初步学习
注: 在Xocde5之后, 使用运行时方法需要进行2步设置1. 在Build Setting中搜索'msg', 设置'Strict Checking' 为 NO2. 使用需要导入头文件 #import ...
- bootstrap笔记
一.栅格系统:<div class="container">内容</div>固定宽度,1200px-margin==1170px<div class= ...
- springmvc接收JSON类型的数据
1.在使用AJAX传递JSON数据的时候要将contentType的类型设置为"application/json",否则的话会提示415错误 2.传递的data需要时JSON类型的 ...
- UITableView使用
@多组数据和多组cell 1根数组内含数组时,只可以开启一组cell,内含多个数组时,可以开启多组cell 2多个数组开启多个cell时,既可以竖向开启,也可以横向里层开启,就好比猜题的模式 @注意点 ...
- 实现PHPCMS手机门户的伪静态
1.打开/phpcms/modules/wap/functions/global.func.php找到里面的这两个函数,如下图所示的注释掉的那行代码,在下面加入一行代码. function list_ ...
- 无法删除对象 '产品',因为该对象正由一个 FOREIGN KEY 约束引用。
在删除northwindcs表时,发生报错,消息 3726,级别 16,状态 1,第 2 行,无法删除对象 '产品',因为该对象正由一个 FOREIGN KEY 约束引用.此时判断是因为有其他表的外键 ...
- ubuntu的一些常用命令,测试版本:Ubuntu 12.04.5 LTS
最近配置了一台Linux服务器,选用的是Ubuntu 12.04.5 LTS版本. 把之前放在Windows Server 2003上的网站移到了现在的服务器上,给我的感受用一个字形容:真JB快! 网 ...
- windows下安装beautifulsoup4
方法一: pip install beautifulsoup4 方法二: 在官网下载安装包后,放在python目录下--运行cmd--进入bs4安装包路径--输入setup.py install 测试 ...