前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >项目多环境切换——Maven Profile

项目多环境切换——Maven Profile

作者头像
互扯程序
发布2018-12-13 15:27:45
3K0
发布2018-12-13 15:27:45
举报
文章被收录于专栏:互扯程序互扯程序

在开发过程中,配置文件是必不可少的,比如:spring-mvc.xml,jdbc.propertiesd,等等!而且重项目开始到项目上线,必须经过重重环境的测试,这时我们每次部署都要去编辑配置文件中的某些配置项比如,数据库的地址啊,缓存地址啊,等等,太麻烦了,使用Maven Profile 指定配置文件打包,完美解决问题!

我是在原有的项目下进行添加的,因此文章也是在原有项目的基础上写滴!

前言

我手中的项目是maven+ssm架构的,配置文件如图所示!

额!不要吐槽!我也不知道为啥当初开发的人不好好地分一下,直接放在这个地方,看好结构,配置文件在resource资源文件夹下。

一、配置profile节点

在 pom.xml 文件中添加如下代码(与dependencies元素同级)

代码语言:javascript
复制
<profiles>
        <profile>
            <!-- 开发环境 -->
            <id>development</id>
            <properties>
                <environment>development</environment> <!-- 节点名字environment随意 用于下方指定 -->
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault> <!-- 默认激活该profile节点-->
            </activation>
        </profile>
        <profile>
            <!-- 测试环境 -->
            <id>test</id>
            <properties>
                <environment>test</environment>
            </properties>
        </profile>
        <profile>
            <!-- 预演环境 -->
            <id>preview</id>
            <properties>
                <environment>preview</environment>
            </properties>
        </profile>
        <profile>
            <!-- 生产环境 -->
            <id>production</id>
            <properties>
                <environment>production</environment>
            </properties>
        </profile>
    </profiles>

二、添加与profile配置相对应的配置文件目录

在resources目录下创建environment目录 在此目录下分别创建profile配置中对应的目录

之后将配置文件分别弄到各个环境文件夹中

三、配置resource节点

代码语言:javascript
复制
<!-- 设置配置文件打包以及输出路径 -->
<resources>
    <resource>
        <directory>src/main/resources</directory> <!--打包时包含src/main/resources目录下所有文件以及子目录 -->
        <excludes> <!--打包时排除节点-->
            <exclude>environment/development/*</exclude> <!--打包时排除src/main/resources/environment/development下所有-->
            <exclude>environment/test/*</exclude><!-- 同上 -->
            <exclude>environment/preview/*</exclude><!-- 同上 -->
            <exclude>environment/production/**</exclude><!-- 同上 -->
        </excludes>
    </resource>
    <resource>
        <!-- 打包时包含src/main/resources/environment/${environment}下所有文件,environment变量值和上面随意写的一样 -->
        <directory>src/main/resources/environment/${environment}</directory>
        <targetPath></targetPath><!-- 打包文件输出位置 这里得说一下我这里什么都不写 位置就是上方directory节点中配置的路径 你们懂得!-->
    </resource>
</resources>

来个图!

对了,那个※号是表示排除的力度,一个※表示排除当前目录下文件,两个※表示当前目录下的文件夹和文件!

四、打包发布项目

更新maven配置,会发现idea右方maven选项栏中出现Profile配置

打完的包会在target目录中

指定环境打包命令:

代码语言:javascript
复制
mvn package -PTest (-p+环境名称 第一个要大写)

烦恼轻松解决!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-11-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 互扯程序 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档