maven 打包时动态替换properties资源文件中的配置值maven 打包时动态替换properties资源文件中的配置值

瘦欲@ 提交于 2020-10-27 12:50:23

pom build节点下面添加resource配置:

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

resource的filtering属性用来表示资源文件中的占位符是否需要被替换,true为需要替换。
上面的定义是所有的.properties文件中的EL表达式占位符都会在打包时动态替换,所有的.xml文件则不会替换占位符。

接下来我们配置两个profile,一个是测试环境,一个是正式环境配置:

<profiles>
        <profile>
            <id>dev</id>
            <properties>
                <jest.urls>http://n2:9200,http://n4:9200</jest.urls>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
 
        <profile>
            <id>production</id>
            <properties>
                <jest.urls>http://192.168.3.241:9200,http://192.168.3.242:9200</jest.urls>
            </properties>
        </profile>
    </profiles>

我们再在src/main/resources目录下面创建一个config.properties文件,内容如下:
jest.urls=${jest.urls}
然后我们执行maven打包命令:clean package -DskipTests -Pdev

查看对应的jar包里面的config.properties文件,可以发现占位符已经被替换成了profile dev中配置的jest.urls的值。
 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!