IDEA结合Maven的profile构建不同开发环境

一、概述

  在开发过程中,我们的项目会存在不同的开发环境,比如开发环境、生产环境、测试环境,而我们的项目在不同的环境中有些配置也是不一样的,比如数据源配置、日志文件配置等,假如我们每次将软件部署到不同的环境时,都需要对相应的配置文件进行修改,来来回回修改,很容易出现少改的地方,而且浪费我们的劳动力。项目用的maven的profile来区别不同的环境配置,我也正好来学习一下。

  另外,该技术点被我应用到我的一个小demo中,地址:https://github.com/Simple-Coder/student-demo

  本文如有不当,欢迎指正,希望大家留言讨论问题。

二、数据准备

  数据准备:准备3个数据库、数据库名为test_db、表名都为student,只是数据不同。

(1)192.168.229.134

  

 (2)192.168.229.133

  

(3)192.168.229.132

   

三、应用演示

  在本次演示中,使用IDEA结合maven的profile来实现对数据库的切换以及应用端口的切换。工程结构如图:

 

扫描二维码关注公众号,回复: 7261973 查看本文章

(1)父pom文件的profile配置

 <!--配置不同的profile,对应不同的生产环境-->
    <profiles>
        <profile>
            <!--开发-->
            <id>dev</id>
            <activation>
                <!--默认开发环境-->
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <activatedProperties>dev</activatedProperties>
            </properties>
        </profile>
        <profile>
            <!--生产-->
            <id>pro</id>
            <properties>
                <activatedProperties>pro</activatedProperties>
            </properties>
        </profile>
        <profile>
            <!--生产-->
            <id>test</id>
            <properties>
                <activatedProperties>test</activatedProperties>
            </properties>
        </profile>
    </profiles>

(2)application.properties的配置

spring.profiles.active=@activatedProperties@  //这里名称与profile中的标签名一致

(3)application-xxx.properties的配置(3个基本一致,数据库地址和应用上下文根不同)

 (4)测试

  ①默认情况:父pom中已指定默认情况为开发环境,连接192.168.229.132数据,学生名应该为王五,上下文根为/dev-app,启动springboot测试如下:

  

   打开浏览器访问:localhost/dev-app/all?base=1

  

 ②指定测试环境,编辑启动配置添加:-Dspring.profiles.active=test

   

   启动程序,查看控制台日志如下

   

   打开浏览器访问:http://localhost/test-app/all?base=1,连接192.168.229.134数据,学生名应该为张三

  

   ③指定生产环境:-Dspring.profiles.active=test,控制日志如下:

  

   浏览器访问:http://localhost/pro-app/all?base=1

  

四、总结

   在使用期间,遇到了很多问题,比如如下异常,折腾好几个小时,百度了很久也不知道哪里问题,都怪自己学识太浅,Spring boot启动原理也不太了解,走了很多弯路,在此要特别感谢这个博客帮了我大忙,本来抱着试试看的态度,结果解决了!附上博客链接:https://blog.csdn.net/Colton_Null/article/details/82145467

(1)异常信息如下:

  

 (2)异常原因

  

 (3)异常解决方案

  

 五、项目地址

  本项目是我突发奇想的,由于一直看《小欢喜》电视剧,所以就想到用目前公司的这些技术点综合起来做一个小demo:项目地址:https://github.com/Simple-Coder/student-demo

猜你喜欢

转载自www.cnblogs.com/rmxd/p/11510894.html