Maven 读取pom.xml
方法一
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();
这种方法不用额外添加配置文件,且步骤简单,推荐。
天河有尽身作涯,星海无边前是岸。