Spring Boot 读取pom.xml中的值

 

首先,Java代码中是无法直接读取pom.xml中的内容的,需要先把值转到xxx.properties中,再通过程序读取xxx.properties中对应的值。

一、xxx.properties读取pom.xml

1.xxx.properties中

以pom.xml中的version标签为例。@xx@代表读取pom.xml中的值

这里为什么是用@呢:

由于${}方式会被maven处理。如果你pom继承了spring-boot-starter-parent,Spring Boot已经将maven-resources-plugins默认的${}方式改为了@@方式,如@name@

2.pom.xml中

在rescource加入

<resource>
    <directory>src/main/resources</directory>
    <includes>
       <include>**.*</include>
       <include>**/**.*</include>
    </includes>
    <filtering>true</filtering>
</resource>


比如证书文件,不做任何处理的话会抛出异常加入这个标签会后,*.xml、*.properties正常,其他文件的内容可能会发生改变。

DerInputStream.getLength(): lengthTag=111, too big

 

解决方案是把把不需要过滤的文件单独列出来,从maven-resources-plugin插件中排除

<plugin> 
<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-resources-plugin</artifactId> 
<configuration> <encoding>UTF-8</encoding> <!-- 过滤后缀为pem、pfx的证书文件 --> <nonFilteredFileExtensions> 
<nonFilteredFileExtension>pem</nonFilteredFileExtension> <nonFilteredFileExtension>pfx</nonFilteredFileExtension> <nonFilteredFileExtension>p12</nonFilteredFileExtension> <nonFilteredFileExtension>eot</nonFilteredFileExtension> <nonFilteredFileExtension>svg</nonFilteredFileExtension> <nonFilteredFileExtension>ttf</nonFilteredFileExtension> <nonFilteredFileExtension>woff</nonFilteredFileExtension> <nonFilteredFileExtension>css</nonFilteredFileExtension> <nonFilteredFileExtension>js</nonFilteredFileExtension> <nonFilteredFileExtension>html</nonFilteredFileExtension> <nonFilteredFileExtension>ico</nonFilteredFileExtension> 
</nonFilteredFileExtensions> 
</configuration> 
</plugin>

二、读取xxx.properties文件

这个就比较常规了

<modelVersion>4.0.0</modelVersion>

	<groupId>com.didispace</groupId>
	<artifactId>Chapter4-2-2</artifactId>
	<version>1.0.0</version>
	<packaging>jar</packaging>
@Value("${project.version}")
private String version;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值