Maven通过filtering标签读取变量配置的三种方法

 更新时间:2024年03月28日 11:41:11   作者:懒鸟一枚  
在日常开发中,我们大多都会有开发环境、测试环境、生产环境等,不同环境的参数肯定不一样,本文主要介绍了Maven通过filtering标签读取变量配置的三种方法,感兴趣的可以了解一下

iltering的作用
MAVEN提供了一种过滤机制,这种机制能够在资源文件被复制到目标目录的同时,当filtering = true时替换资源文件中的占位符;当filtering = false时不进行占位符的替换。

本文重点介绍maven filtering标签相关知识。

方式一 读取资源文件读取 pom文件标签属性变量值

<project>
    <name>HelloWorld</name>
    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>
</project>

filtering:开启过滤,用指定的参数替换directory下的文件中的参数(eg. ${name})

directory:指定资源文件的位置。

mvn resources:resources :对资源做出处理,先于compile阶段。

然后在src/main/resources下,添加一个文件,比如叫test.txt。test.txt内容如下:

I want to say : ${name}

3.执行 mvn resources:resources 命令,最后会在target/classes下看到test.txt的内容变成了,如下所示:

I want to say : HelloWorld

方式二. 读取资源文件读取 读取 pom文件 properties 变量属性下 标变量值

<project>
    <name>HelloWorld</name>
    <properties>
        <username>Tom</username>
    </properties>
    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>
</project>

然后在test.txt,添加一句:

My name is ${username}

再执行上述的步骤3。即可变成: My name is Tom

方式三: 通过 filters 标签 预编译资源文件,进行读取properties文件变量值

<project>
    <filters>
        <filter>src/main/resources/code.properties</filter>
    </filters>
    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>
</project>

在src/main/resources下添加文件code.properties

该文件内容如下:

username1=tom1
password=123

然后test.txt,添加如:${username1} ${password} 执行步骤3,也会得到同样的效果。

到此这篇关于Maven通过filtering标签读取变量配置的三种方法的文章就介绍到这了,更多相关Maven filtering读取变量配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详细分析JAVA加解密算法

    详细分析JAVA加解密算法

    这篇文章主要介绍了JAVA加解密算法的的相关资料,文中讲解非常详细,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-06-06
  • 浅谈JAVA 类加载器

    浅谈JAVA 类加载器

    这篇文章主要介绍了JAVA 类加载器的的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-06-06
  • 浅谈java object对象在heap中的结构

    浅谈java object对象在heap中的结构

    本文主要介绍了浅谈java object对象在heap中的结构,感兴趣的同学,可以参考下。
    2021-06-06
  • 详解Spring Boot中@PostConstruct的使用示例代码

    详解Spring Boot中@PostConstruct的使用示例代码

    在Java中,@PostConstruct是一个注解,通常用于标记一个方法,它表示该方法在类实例化之后(通过构造函数创建对象之后)立即执行,这篇文章主要介绍了详解Spring Boot中@PostConstruct的使用,需要的朋友可以参考下
    2023-09-09
  • Java中ConcurrentHashMap是如何实现线程安全

    Java中ConcurrentHashMap是如何实现线程安全

    ConcurrentHashMap是一个哈希表,支持检索的全并发和更新的高预期并发。本文主要介绍了Java中ConcurrentHashMap是如何实现线程安全,感兴趣的可以了解一下
    2021-11-11
  • SpringBoot的自定义banner使用方法

    SpringBoot的自定义banner使用方法

    这篇文章主要介绍了SpringBoot的自定义banner使用方法,在Spring Boot中,你可以通过定制Banner来个性化你的应用程序启动时的输出,Banner是一个在应用程序启动时显示的ASCII艺术字形式的标志,用于增加应用程序的识别度和个性化,需要的朋友可以参考下
    2024-01-01
  • Java 并发编程之ThreadLocal详解及实例

    Java 并发编程之ThreadLocal详解及实例

    这篇文章主要介绍了Java 并发编程之ThreadLocal详解及实例的相关资料,需要的朋友可以参考下
    2017-02-02
  • mybatis-plus update更新操作的三种方式(小结)

    mybatis-plus update更新操作的三种方式(小结)

    本文主要介绍了mybatis-plus update更新操作的三种方式,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • java实现两个文件的拼接

    java实现两个文件的拼接

    这篇文章主要为大家详细介绍了java实现两个文件的拼接,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • Intellij IDEA 2019 最新乱码问题及解决必杀技(必看篇)

    Intellij IDEA 2019 最新乱码问题及解决必杀技(必看篇)

    大家在使用Intellij IDEA 的时候会经常遇到各种乱码问题,今天小编给大家分享一些关于Intellij IDEA 2019 最新乱码问题及解决必杀技,感兴趣的朋友跟随小编一起看看吧
    2020-04-04

最新评论