方法一

1、编写配置文件,要读取的内容用@@包裹。

spring:
application:
# @变量名@ 读取pom.xml中的值
version: @project.version@

2、pom.xml 中添加 resource 资源文件过滤,在编译构建的时候,将 yml 中引用 pom.xml 的变量,替换成真实的值。

<project>
<!-- pom 中定义的 project.version -->
<version>1.8.0-SNAPSHOT</version> <build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<!-- 配置资源文件 -->
<include>**/*.yml</include>
</includes>
<!-- 启用过滤器,过滤器会解析需要过滤的的资源文件,将其中的变量替换成真实的值 -->
<filtering>true</filtering>
</resource>
</resources>
</build>
</project>

3、编译构建后,bootstrap.yml 真实内容(注意 version 变成了真实值)。

spring:
application:
# @变量名@ 读取pom.xml中的值
version: 1.8.0-SNAPSHOT

4、在 Java 代码中使用 @Value 注入 yml 中的值。

@Value("${spring.application.version}")
private String applicationVersion;

这种方式需要额外添加配置文件,过程也比较繁琐。

方法二

1、引入 maven-model 依赖。

<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-model</artifactId>
<version>${maven-model.version}</version>
</dependency>

2、在 Java 代码中获取。

// 读取pom.xml内容,构建模型
Model model = new MavenXpp3Reader().read(new FileReader(pomPath));
// 服务版本号
String version = model.getVersion();

这种方法不用额外添加配置文件,且步骤简单,推荐

Maven 读取pom.xml的更多相关文章

  1. maven中 pom.xml与properties等配置文件之间互相读取变量

    问题由来: 最近公司的maven项目需要改进,希望把该项目依赖的一系列artifact放到properties文件中,这样做的目的是是为了很容易看到四月份release和七月份的release,它们所 ...

  2. IDEA Maven项目 pom.xml 找不到 Dependency 依赖

    转载: IDEA Maven项目 pom.xml 找不到 Dependency 依赖 如果你的pom.xml中使用了dependencyManagement管理依赖并且添加了你本地仓库中不存在的依赖可 ...

  3. (六)Maven之pom.xml文件简单说明

    通过前面几部分知识,我们对maven已经有了初步的印象,就像Make的Makefile.Ant的build.xml一样,Maven项目的核心是pom.xml.POM(Project Object Mo ...

  4. maven 的 pom.xml 文件报错:ArtifactTransferException: Failure to transfer

    因为maven下载依赖jar包时,特别慢,所以取消了下载过程,再次打开eclipse时,maven的pom.xml文件报错如下: ArtifactTransferException: Failure ...

  5. maven的pom.xml深入理解

    maven的pom.xml的具体使用和各个xml标签的作用.这样设计的原理是什么? maven实战的第17章-18章是架构方面的知识

  6. Maven项目pom.xml文件简单解析

    Maven项目pom.xml简单解析 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="h ...

  7. maven项目pom.xml第一行报错

    maven项目pom.xml第一行报错 这是第一行:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi= ...

  8. java maven项目 pom.xml plugin 报错, build path 找不到 jconsole-1.8.0.jar 和 tools-1.8.0.jar 包

    maven项目pom.xml突然报错,在Java Build Path 中并没有引用的jar包出现在了Maven Dependencies的依赖包中. 这个错误直接导致了pom.xml文件中 < ...

  9. SSH项目搭建(四)——Maven的pom.xml配置

    史上最全的maven的pom.xml文件详解: https://www.cnblogs.com/qq765065332/p/9238135.html 下面的节点有不理解是啥意思的可以到上面链接的文章里 ...

  10. maven(4)------maven核心pom.xml文件常用元素分析

    在maven项目中,pom文件是核心文件 pom.xml: <?xml version="1.0" encoding="UTF-8"?> <p ...

随机推荐

  1. Centos8上安装Redis5.X

    一.下载Redis 下载地址:wget http://download.redis.io/releases/redis-5.0.7.tar.gz 解压:tar -xzvf redis-5.0.7.ta ...

  2. [Rust] 命名习惯

    [Rust] 命名习惯 通用习惯 CamelCase: 首位是大写字母的单词,没有分隔符: snake_case: 使用下划线作为分隔符,小写单词: SCREAMING_SNAKE_CASE: 使用下 ...

  3. 【Azure 应用服务】Azure Durable Function(持久函数)在执行Activity Function时候,因为调用函数名称错误而导致长时间无响应问题

    问题描述 在使用Azure Durable Function函数,调用函数链模式来调用多个Activity Function. 函数链:https://docs.azure.cn/zh-cn/azur ...

  4. 初识JavaScript逆向——以网易云音乐和招标网站为例

    前言:需要掌握一定的JavaScript基础,能看懂基础的JavaScript代码. 我们平常在浏览网站的时候会看到许多加密的参数,如果需要知道它的原始数据,就需要知道整个加密过程,所以本篇文章就来介 ...

  5. dart特殊符号语法(一)

    许久没有写博客.浏览以往的博客,是那么稚嫩.就让它们当成成长的照片吧.重新开始操起这个记录的爱好,一方面把它当成可以查阅的资料,方便自己:另一方面希望有帮助于人.由于个人能力,认知有限,如读者发现有纰 ...

  6. 第12章_MySQL数据类型

    目录: https://www.cnblogs.com/xjwhaha/p/15844178.html 1. MySQL中的数据类型 类型 类型举例 整数类型 TINYINT.SMALLINT.MED ...

  7. Codeforces Round 169 (Div. 2)C. Little Girl and Maximum Sum(差分、贪心)

    目录 题面 链接 题意 题解 代码 总结 题面 链接 C. Little Girl and Maximum Sum 题意 给q个[l,r]将所有这些区间里面的数相加和最大. 可以进行的操作是任意排列数 ...

  8. Acwing第 141 场周赛

    A题 签到模拟即可 B题 单独考虑每一个a[i],如果i要是答案需要指针移动多少次,然后算完,排个序,指针移动最少的就是答案. #include <bits/stdc++.h> #defi ...

  9. liunx 大文件切割,catalina.out 大文件打开

    工作中,由于没有没有配日志文件切割,不小心日志文件上G了,用tail -f   或 cat 命令都难打开了,但偏这时候出了点事,需要查日志 怎么呢.第一条件命令    tail -50000f  ca ...

  10. left jon连接查询踩坑记

    项目开发中经常会使用到多张表进行关联查询,比如left join关联查询. 如果有一张表A和一张表B,查询语句 SELECT a.*,b.name from A a left join B b On ...