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的版本要求有区别,为了简化操作,我们可以通过批处理文件来完成环境变量切换的任务.使用方法:阅读代码我们就会 ...
随机推荐
- Kerberos是怎么工作的?
Kerberos是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证. 采用客户端/服务器结构,并且能够进行相互认证,即客户端和服务器端均可对对方进行身份认证. 关键要素 ...
- JVM 内存管理机制
1. 内存分配图: 两栈一区一堆一计数 方法区里面 包含了运行时常量 2. 对象创建过程: new A() 首先加载A的字节码. 分配内存,内存分配方式分两种,如果采用带压缩的垃圾回收策略,则采用“ ...
- PostGIS导入导出SHP文件常用命令
SHP导入POSTGIS数据库 引用 直接导入数据库 shp2pgsql -I -s 2437 -W GBK shop_point.shp public.ntable | psql -U postg ...
- PHP获取当前时间戳,当前时间、及解决时区问题
一.获取当前时间戳 方法1:通过time函数 time(); 方法2:通过$_SERVER中的REQUEST_TIME元素 $_SERVER['REQUEST_TIME']; 方法3:通过strtot ...
- Git和.gitignore
http://blog.csdn.net/cscmaker/article/details/8553980 在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改根目录中 .giti ...
- TCP/IP协议学习(六) 链路层详解
学习知识很简单,但坚持不懈却又是如此的困难,即使一直对自己说"努力,不能停下"的我也慢慢懈怠了... 闲话不多说,本篇将讲述TCP/IP协议栈的链路层.在本系列第一篇我讲到,TCP ...
- php curl 采集
curl 采集五个步骤: 1.curl_init()初始化curl 2.curl_setopt()设置传输数据和参数 3.curl_exec()执行传输并获取返回数据 4.curl_errono()返 ...
- 转:在java中使用dom4j解析xml
JAVA 使用Dom4j 解析XML Java DOM4J Parser - Parse XML Document Dom4j下载及使用Dom4j读写XML简介 在java中使用dom4j解析xml ...
- Goppa code
上面的公式定义了长度为n的Goppa码[1].n=2^m, 其维度 k≥n- t·m. 最小距离d≥ 2t+1. 存在运行时间与 n·t 成正比的快速译码算法. 从形式上看,右边是分式,相当于线性分组 ...
- easyui layout 布局title
<script> function aclick(){ $("a").click(function () { var name=this.innerHTML; $($( ...