我们在使用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配置的版本信息的更多相关文章

  1. Java 中 JDBC 基础配置

    Java 中 JDBC 基础配置 <resource auth="Container" driverclassname="oracle.jdbc.driver.Or ...

  2. Maven配置JRE版本

    Maven配置JRE版本 apache-maven-3.5.0\conf\settings.xml <profiles> <profile> <id>develop ...

  3. java中使HttpDelete可以发送body信息

    java中使HttpDelete可以发送body信息RESTful api中用到了DELETE方法,android开发的同事遇到了问题,使用HttpDelete执行DELETE操作的时候,不能携带bo ...

  4. Java 笔记——在 IDEA 中使用 Maven 配置和使用 MyBatis

    1.前言 MyBatis 是什么? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射. MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集. ...

  5. maven 配置jdk版本编译

    在maven的默认配置中,对于jdk的配置是1.4版本,那么创建/导入maven工程过程中,工程中未指定jdk版本. 对工程进行maven的update,就会出现工程依赖的JRE System Lib ...

  6. java中使用jdbc配置连接串时mysql 5.6与5.7版本“编码”参数有区别!

    在mysql5.6中 java程序使用jdbc时链接字符串应该使用?characterEncoding=utf-8,而5.7版本可以省略,否则可能会有相关的语句执行结果出错! String drive ...

  7. eclipse中的maven配置

    1.下载最新版eclipse,包含maven版本 2.配置maven本地仓库(修改settings.xml)

  8. Java 中,Maven 和 ANT 有什么区别?

    虽然两者都是构建工具,都用于创建 Java 应用,但是 Maven 做的事情更多, 在基于"约定优于配置"的概念下,提供标准的 Java 项目结构,同时能为应用自 动管理依赖(应用 ...

  9. java中的jdk配置详解:

    1.配值系统变量"JAVA_HOME" 变量名JAVA_HOME: 指向:JDK(java开发工具包)的安装路径 目的:使用JDK安装目录时,可以直接通过”%JAVA_HOME%“ ...

随机推荐

  1. 理解ResourceBundle.getBundle("dataSourceFactory")

    最近在项目文件中看到这样的代码一下子还看不懂 经过他人指点和自己百度,总算明白大致用处. 首先这个方法时java.util的内置方法,主要功能是用于解析properties文件的. ResourceB ...

  2. Win10系统安装vmware workstation 12后没有桥接网卡怎么办

    原文 vmware workstation是一款虚拟机计算机软件,可以同时运行不同的操作系统,然而有win10系统用户在安装vmware workstation 12之后,却发现网络连接里面没有桥接网 ...

  3. Microsoft ReportViewer 控件类型版本兼容问题及解决方法

    错误 Parser Error Message: The base class includes the field 'rvEquipment', but its type (Microsoft.Re ...

  4. 多线程拷贝备份文件方法(Windows)

    D:\bat\robocopy.exe D:\backupdata  \\192.168.36.45\BData\  db_20170716.dmp 解释: 微软提供的robocopy.exe命令,默 ...

  5. MySQL图形化界面SQLyog

    软件地址:SQLyog 密码: mmaf

  6. Python中os.listdir的排序问题

    上周应别人要求,使用python批量修改文件名称.文件名有规律,当时就用了一个函数直接精确的用文件名替换了.后来想直接可以用listdir来遍历每个文件来修改更加通用一些.但是看了os.listdir ...

  7. Python爬虫教程-05-python爬虫实现百度翻译

    使用python爬虫实现百度翻译功能 python爬虫实现百度翻译: python解释器[模拟浏览器],发送[post请求],传入待[翻译的内容]作为参数,获取[百度翻译的结果] 通过开发者工具,获取 ...

  8. spring boot(5)-properties参数配置

     application.properties application.properties是spring boot默认的配置文件,spring boot默认会在以下两个路径搜索并加载这个文件 s ...

  9. VISO画UML用例图添加Include关系的方法

    VISO画UML用例图添加Include关系的方法 今天用Microsoft Visio 2007画用例图时,发现visio UML用例里面找不到include关系,查到一个可行的解决办法:  1)创 ...

  10. 加域(Netdom)

    客户端运行: netdom.exe join %computername% /domain:testw.com /userd:testw\adadmin /passwordd:boc.123 /reb ...