从基于Maven的Web应用程序获取版本字符串
打包maven项目时,它将自动在其中生成pom.properties文件,其中将包含版本,artifactId和groupId信息。 这些在运行时很方便拥有并显示给您的Web应用程序。 可以使用如下方法检索它。
public class Application {private String version;public String getVersion() {if (version == null) {String res = "META-INF/maven/myapp/pom.properties";URL url = Thread.currentThread().getContextClassLoader().getResource(res);if (url == null) {version = "SNAPSHOT." + Utils.timestamp();} else {Properties props = Utils.loadProperties(res);version = props.getProperty("version");}}return version;}
}
听起来不错? 不太快! 原来,您需要做更多的技巧才能使其正常运行以进行部署。 默认情况下,maven war插件会将您的类文件打包到WEB-INF / classs中,但pom.properties在同一级别的META-INF中,而不在WEB-INF / classes / META-INF中! 这导致上面的代码无法从类路径中找到您的资源pom.properties!
要解决此问题,您需要将以下内容添加到pom.xml文件中:
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-war-plugin</artifactId><version>2.6</version><configuration><archiveClasses>true</archiveClasses></configuration></plugin>
这将告诉maven将类和pom.properties打包到一个单独的文件中,然后将其放在WEB-INF / lib文件夹中,而不是使用解压缩的WEB-INF / classes版本。 这将强制由我们的getVersion()方法正确添加和读取pom.properties。
翻译自: https://www.javacodegeeks.com/2015/05/getting-version-string-from-a-maven-based-web-application.html
从基于Maven的Web应用程序获取版本字符串相关推荐
- maven 常量字符串过长_从基于Maven的Web应用程序获取版本字符串
maven 常量字符串过长 打包maven项目时,它将自动在其中生成pom.properties文件,其中将包含版本,artifactId和groupId信息. 这些在运行时很方便拥有并显示给您的We ...
- 一个非常轻巧的基于Groovy的Web应用程序项目模板
一个非常轻巧的基于Groovy的Web应用程序项目模板 您可能听说过该项目Grails是Ruby on Rails之类的Groovy版本的框架,该框架使您可以通过动态脚本轻松地创建Web应用程序. 尽 ...
- groovy 模板_一个非常轻巧的基于Groovy的Web应用程序项目模板
groovy 模板 一个非常轻巧的基于Groovy的Web应用程序项目模板 您可能听说过该项目Grails是Ruby on Rails之类的Groovy版本的框架,该框架使您可以通过动态脚本更轻松地创 ...
- spring_在基于Spring的Web应用程序中使用Http Session
spring 在基于Spring的Web应用程序中拥有和使用Http会话有多种方法. 这是基于最近项目经验的总结. 方法1 只需在需要的HttpSession中注入即可. @Service publi ...
- 在Autodesk应用程序商店发布基于浏览器的Web应用程序
你一定已经听说过Autodesk应用程序商店了,通过Autodesk应用程序商店,你可以免费下载或购买来自全球的优秀开发者发布的应用程序,来帮助你更快更方便的完成你的工作.而且作为开发者,您也可以在A ...
- 掌握 Ajax,第 6 部分: 建立基于 DOM 的 Web 应用程序
在不刷新页面的情况下使用 DOM 改变网页界面 文档选项 将此页作为电子邮件发送 未显示需要 JavaScript 的文档选项 样例代码 级别: 中级 Brett McLaughlin (mailto ...
- SVN基于Maven的Web项目更新,本地过程详细解释
周围环境 MyEclipse:10.7 Maven:3.1.1 概要 最近在做项目,MyEclipse下载SVN基于上述Maven的Web问题,有时候搞了非常半天,Maven项目还是出现叉号,最后总结 ...
- 在基于Spring的Web应用程序中使用Http Session
在基于Spring的Web应用程序中拥有和使用Http会话有多种方法. 这是基于最近项目经验的总结. 方法1 只需在需要的HttpSession中注入即可. @Service public class ...
- 一个基于J2EE的web应用程序运行起来需要什么?
2019独角兽企业重金招聘Python工程师标准>>> Eclipse ?IDEA?这是目前市面上最常用的开发工具啦,我的理解是这些只是开发工具,是为了方便开发的,而不是web应用程 ...
最新文章
- 《Java入门经典(第7版)》—— 6.11 练习
- python struct笔记
- AdaBoost人脸检测原理
- SecureCRT使用
- 安装配置好openstack环境的虚拟机,须要改动ip时,在数据库中同步改动ip的方法...
- Zookeeper和分布式环境中的假死脑裂问题(转)
- CF1385E Directing Edges 拓扑序
- 集群的可扩展性及其分布式体系结构(2)-下
- java 多线程基础(一)
- mysql acid介绍_InnoDB ACID模型介绍
- python安装详细步骤mac_Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
- 理解C/C++运行时库
- 小程序获取百度地图api
- 朋友圈点赞截图在线生成源码
- linux洪水攻击路由器,(20)Linux下ICMP洪水攻击实例
- 【PHPWord】如何解决PHPWord的输出checkbox复选框并设置checked已勾选
- PPC修改注册表大全 (注册表必看)(转载)
- PHP面向对象基础七
- php更改后缀名,修改网页后缀名
- Linux下c++/c使用getsockopt()的记录
热门文章
- SpringSecurity认证
- 考研英语二大纲22年考研
- HBase体系架构说明
- android 监听安装来源_Flutter插件开发之APK自动安装
- MyBatis-Plus EntityWrapper的使用 wrapper le ge
- 道指mt4代码_剑指offer算法题052:正则表达式匹配
- jdbc java_Java中使用JDBC
- Object.hashCode()与Object.equals()
- 本地方法(JNI)——从java 程序中调用C函数
- javadoc提取工具_使JavaDoc保持最新状态的工具