maven 替换指定文件属性值

maven 替换指定文件属性值

问题由来

接到一个需求:组装 http 协议的时候在 header 里面带上 User-agent , 但是 agent 里面需要动态获取当前操作系统、系统架构、当前项目版本和名称。本着最少维护成本的想法,否定了手动维护静态变量的选择,所以只能选择通过现有的技术自动化解决问题。

实现步骤

  1. 在项目的 resources 目录下创建 xx.properties 文件(也可以在自己喜欢的目录创建,不过稍后读取的时候会比较麻烦,所以建议是在 resources 下面创建),填写以下信息

    project.version=${project.version}
    project.name=${project.name}
    

    看名字就知道他们是什么意思了就不解释了

  2. 在 pom 文件的 build 标签里填入相应信息

    <build>
            <resources>
                <resource>
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>xx.properties</include>
                    </includes>
                    <filtering>true</filtering>
                </resource>
            </resources>
    </build>      
    

    directory:指定需要替换的文件目录
    include:指定需要替换的文件(可以使用*.*来通配)
    filtering:true 开启替换

  3. 最后就是在代码里面读取配置

    Properties props = System.getProperties();
    // 这里有个小问题 getSystemResourceAsStream 和 getResourceAsStream 是有区别的,前者如果打成 jar 被依赖的话会报xx.properties找不到
    // 替代写法,场景不同可以选需要的写法
    // props.load(xx.class.getClassLoader().getResourceAsStream("xx.properties"));
    props.load(ClassLoader.getSystemResourceAsStream("xx.properties"));
    String name = props.getProperty("project.name");
    String version = props.getProperty("project.version")
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值