maven小知识-资源文件变量替换

项目在不同环境下部署时,使用的属性是不同的,这时可以使用MAVEN进行资源文件的过滤,在打包时传递参数,打出适合部署在对应环境的资源文件。

如定义了如下资源文件:

spring.env=${env}

pom文件中可添加如下信息

<project>
    <properties>

        <!--使用了 spring-boot-starter-parent 做项目版本管理,其默认值为@-->
        <resource.delimiter>${}</resource.delimiter>

        <!--默认值-->
        <env>DEV</env>
    </properties>
    <build>
        <!-- 配置文件的环境变量 -->
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
            <!--可通过includes指定需要进行过滤的文件-->
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>false</filtering>
            <!--可通过excludes指定排除需要进行过滤的文件, 这里的路径与上相同, 否则其他文件将不会被打包-->
        </resource>
    </resources>
    </build>
</project>

maven打包命令, 将该环境下需要使用的参数进行传递

mvn clean install -Denv=PRO

当参数过多时,可同时使用profiles,将无需保密的参数定义在pom中,通过激活对应profile的形式来进行参数替换。易可通过使用apollo等平台,在此只需动态配置环境即可。

mvn clean install -P${profileId}

参考

Maven打包时,环境变量替换,并解决spring-boot项目中${}无效的问题


文章作者: the next page
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 the next page !
评论
 上一篇
python-菜鸟教程 python-菜鸟教程
语法 注释 以#开头, 或 ‘’’ 和 “””。 行与缩进 使用缩进来表示代码块, 同一个代码块的语句必须包含相同的缩进空格数。 缩进数的空格数不一致,会导致运行错误。 多行语句 语句很长,可以使用反斜杠\来实现多行语句。 total
2019-05-19 the next page
下一篇 
LDAP学习与介绍 LDAP学习与介绍
概念LDAP是轻量目录访问协议(Lightweight Directory Access Protocol)的缩写,其结构用树来表示,而不是用表格。它有优异的读性能,但写性能差,并且没有事务处理、回滚等复杂功能,不适于存储修改频繁的数据。
2019-04-04 the next page
  目录