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

一、xxx.properties读取pom.xml

1.xxx.properties中

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

project.version=@project.version@

这里为什么是用@呢:

由于${}方式会被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>

blob.png

二、读取xxx.properties文件

这个就比较常规了

@Value("${project.version}")
private String version;


最后输出到页面

blob.png

赞助本站,网站的持续发展离不开你们的支持!一分也是爱ヾ(◍°∇°◍)ノ゙
 本文链接: ,花了好多脑细胞写的,转载请注明链接喔~~
登陆
      正在加载评论