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

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的值。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容