在Java中使用Maven配置的版本信息
我们在使用maven开发一些项目的时候需要知道当前的版本状态,但版本状态储存在pom.xml文件中,可以采用以下2种方式进行获取:
1. 采用xml解析的方式去获取pom文件的{project.version}变量,但工作量会有点大;
2. 采用maven提供的方案:在自定义的资源文件( properties )中放置 pom.xml 设置的变量,在构建之后就会自动将变量替换成为真实值。
步骤
1. 在src/main/resources中新建app.properties文件并设置如下内容:
app.version=${project.version}
2. 配置pom文件
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
3. 实现对app.version的读取
public static String getAppVersion() {
if (null == appVersion) {
Properties properties = new Properties();
try {
properties.load(AppUtils.class.getClassLoader().getResourceAsStream("app.properties"));
if (!properties.isEmpty()) {
appVersion = properties.getProperty("app.version");
}
} catch (IOException e) {
e.printStackTrace();
}
}
return appVersion;
}
4. 测试获取版本信息
@Test
public void testApplicationVersion(){
String version = AppUtils.getAppVersion();
log.info("app version:'{}'",version);
}
参考:http://books.sonatype.com/mvnref-book/reference/resource-filtering-sect-properties.html
在Java中使用Maven配置的版本信息的更多相关文章
- Java 中 JDBC 基础配置
Java 中 JDBC 基础配置 <resource auth="Container" driverclassname="oracle.jdbc.driver.Or ...
- Maven配置JRE版本
Maven配置JRE版本 apache-maven-3.5.0\conf\settings.xml <profiles> <profile> <id>develop ...
- java中使HttpDelete可以发送body信息
java中使HttpDelete可以发送body信息RESTful api中用到了DELETE方法,android开发的同事遇到了问题,使用HttpDelete执行DELETE操作的时候,不能携带bo ...
- Java 笔记——在 IDEA 中使用 Maven 配置和使用 MyBatis
1.前言 MyBatis 是什么? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射. MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集. ...
- maven 配置jdk版本编译
在maven的默认配置中,对于jdk的配置是1.4版本,那么创建/导入maven工程过程中,工程中未指定jdk版本. 对工程进行maven的update,就会出现工程依赖的JRE System Lib ...
- java中使用jdbc配置连接串时mysql 5.6与5.7版本“编码”参数有区别!
在mysql5.6中 java程序使用jdbc时链接字符串应该使用?characterEncoding=utf-8,而5.7版本可以省略,否则可能会有相关的语句执行结果出错! String drive ...
- eclipse中的maven配置
1.下载最新版eclipse,包含maven版本 2.配置maven本地仓库(修改settings.xml)
- Java 中,Maven 和 ANT 有什么区别?
虽然两者都是构建工具,都用于创建 Java 应用,但是 Maven 做的事情更多, 在基于"约定优于配置"的概念下,提供标准的 Java 项目结构,同时能为应用自 动管理依赖(应用 ...
- java中的jdk配置详解:
1.配值系统变量"JAVA_HOME" 变量名JAVA_HOME: 指向:JDK(java开发工具包)的安装路径 目的:使用JDK安装目录时,可以直接通过”%JAVA_HOME%“ ...
随机推荐
- 理解ResourceBundle.getBundle("dataSourceFactory")
最近在项目文件中看到这样的代码一下子还看不懂 经过他人指点和自己百度,总算明白大致用处. 首先这个方法时java.util的内置方法,主要功能是用于解析properties文件的. ResourceB ...
- Win10系统安装vmware workstation 12后没有桥接网卡怎么办
原文 vmware workstation是一款虚拟机计算机软件,可以同时运行不同的操作系统,然而有win10系统用户在安装vmware workstation 12之后,却发现网络连接里面没有桥接网 ...
- Microsoft ReportViewer 控件类型版本兼容问题及解决方法
错误 Parser Error Message: The base class includes the field 'rvEquipment', but its type (Microsoft.Re ...
- 多线程拷贝备份文件方法(Windows)
D:\bat\robocopy.exe D:\backupdata \\192.168.36.45\BData\ db_20170716.dmp 解释: 微软提供的robocopy.exe命令,默 ...
- MySQL图形化界面SQLyog
软件地址:SQLyog 密码: mmaf
- Python中os.listdir的排序问题
上周应别人要求,使用python批量修改文件名称.文件名有规律,当时就用了一个函数直接精确的用文件名替换了.后来想直接可以用listdir来遍历每个文件来修改更加通用一些.但是看了os.listdir ...
- Python爬虫教程-05-python爬虫实现百度翻译
使用python爬虫实现百度翻译功能 python爬虫实现百度翻译: python解释器[模拟浏览器],发送[post请求],传入待[翻译的内容]作为参数,获取[百度翻译的结果] 通过开发者工具,获取 ...
- spring boot(5)-properties参数配置
application.properties application.properties是spring boot默认的配置文件,spring boot默认会在以下两个路径搜索并加载这个文件 s ...
- VISO画UML用例图添加Include关系的方法
VISO画UML用例图添加Include关系的方法 今天用Microsoft Visio 2007画用例图时,发现visio UML用例里面找不到include关系,查到一个可行的解决办法: 1)创 ...
- 加域(Netdom)
客户端运行: netdom.exe join %computername% /domain:testw.com /userd:testw\adadmin /passwordd:boc.123 /reb ...