美文网首页IT必备技能
Maven环境隔离快速入门

Maven环境隔离快速入门

作者: 端碗吹水 | 来源:发表于2019-11-17 18:24 被阅读0次

在我们平时学习或进行一些项目的练习时,经常会使用到Maven来作为项目的管理工具。但是我们可能很少会用到Maven的环境隔离,甚至没有了解过环境隔离,这是因为我们进行这种本地开发时几乎是不需要使用到环境隔离的。而在实际的项目环境中则不一样,在实际的项目开发中会有多个环境,不同的环境都存在一定的差异,为了让这些环境之间互不影响,所以需要用到Maven的环境隔离将不同的环境隔离开。

实际的项目环境:

  • 本地开发环境(Local)
  • 开发环境(Dev)
  • 测试环境(Beta)
  • 线上生产环境(Prod)

隔离环境之间各种配置可能存在的一些常见差异:

  • FTP服务器相关的配置信息不一样
  • 数据库配置不一样
  • 支付接口不一样,例如支付宝分沙箱环境和真实环境
  • 框架配置文件不一样,例如日志的输出路径等等
  • ......

Maven环境隔离解决的实际问题:

  • 避免人工修改的弊端,即人为修改容易犯错
  • 轻松分环境编译、打包、部署等等
  • ......

Maven环境隔离配置:

  • 在pom.xml中的build节点里增加如下内容(根据实际的项目情况进行配置):
<!-- 加载资源文件的配置 -->
<resources>
    <resource>
        <!-- 指定配置文件所在的目录,${deploy.type}是一个参数变量,通过这个变量来决定加载哪个环境的配置文件 -->
        <directory>src/main/resources.${deploy.type}</directory>
        <!-- 排除.jsp文件,也就是不加载.jsp文件 -->
        <excludes>
            <exclude>*.jsp</exclude>
        </excludes>
    </resource>
    <resource>
        <directory>src/main/resources</directory>
    </resource>
</resources>
  • 在pom.xml中增加profiles节点,如下:
<profiles>
    <!-- 开发环境 -->
    <profile>
        <id>dev</id>
        <activation>
            <!-- 表示如果编译时没有指定环境,则以该环境为默认环境 -->
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <deploy.type>dev</deploy.type>
        </properties>
    </profile>
    <!-- 测试环境 -->
    <profile>
        <id>beta</id>
        <properties>
            <deploy.type>beta</deploy.type>
        </properties>
    </profile>
    <!-- 生产环境 -->
    <profile>
        <id>prod</id>
        <properties>
            <deploy.type>prod</deploy.type>
        </properties>
    </profile>
</profiles>

Maven环境隔离-资源文件目录初始化:

  • 新建与环境对应的文件夹,并把要隔离的文件分开,公共的则留下。例如:


    image.png

Maven环境隔离-IDEA中设置默认环境:

  • 在IDEA右侧的Maven Projects界面里,选中本地开发环境所对应的环境。如果选中之后可能会提示 ”Maven project need to be imported“ ,这时点击import change进行更新即可。如下:


    image.png

因为我们在IDEA运行Tomcat的时候会发布war包,而这个打包过程使用什么环境,就是在这里配置的,所以我们才要在IDEA中设置一个默认的环境。

注:不要多选,多选环境可能会造成环境错乱。

Maven环境隔离-编译打包命令:

  • 在我们手动使用maven的命令进行编译打包的时候,需要在命令的末尾增加一个参数,参数是-P${环境标识},例如:
mvn clean package -Dmaven.test.skip=true -Pdev   # 开发环境的打包命令
mvn clean package -Dmaven.test.skip=true -Pbeta  # 测试环境的打包命令
mvn clean package -Dmaven.test.skip=true -Pprod  # 生产环境的打包命令

Maven环境隔离验证:

  • 首先在某个配置文件中写上对应环境的标识,然后通过分环境编译打包,也就是使用不同的命令参数进行打包,打包成功后查看不同环境下的配置文件来进行验证。我这里进行了开发环境的打包,并且打包成功。如下:


    image.png

打包完成后,我们可以到target下的classes目录中,查看我们的配置文件是否为开发环境的配置文件。如下:


image.png

然后我们再来进行测试环境的打包,打包完成后,也是查看我们的配置文件是否为测试环境的配置文件。如下:


image.png

至此,我们就完成了Maven环境隔离的配置及打包验证,这样当我们使用不同的命令参数进行编译打包,就能达到一个环境隔离的作用。由于隔离了环境,我们在开发完项目进行打包上线的时候,就不需要再手动地去修改配置文件了,减去了不少麻烦。

相关文章

  • Maven环境隔离快速入门

    在我们平时学习或进行一些项目的练习时,经常会使用到Maven来作为项目的管理工具。但是我们可能很少会用到Maven...

  • docker容器

    docker快速入门01docker快速入门02KVM和Docker的对比 什么是容器? 容器就是在隔离的环境运行...

  • Maven环境隔离

    首先我们把环境 定义为一下四类 Local:本地开发环境、Dev:开发环境、Beta:QA的测试环境、Prod...

  • Maven环境隔离

    maven环境隔离用于多环境配置问题,解决不同环境配置信息不同的问题,利于部署! 1、pom.xml配置 2、项目...

  • Maven环境隔离

    解决的问题 避免人工修改的弊端,即容易犯错 轻松分环境编译,打包,部署 配置及原理 在pom.xml中增加buil...

  • maven环境隔离

    pom 节点下增加节点 pom 节点下增加节点 在resources文件夹的同级目录下创建以下文件夹 reso...

  • Maven环境隔离

    1、在pom.xml中添加如下 和 同级,都在 里面...代表其他配置内容 true 是指默认dev环境 2、对...

  • maven环境隔离

    环境隔离在实际工作中必然会遇到,属于一次投入长久收益的事情,所以本篇把maven的环境隔离总结一下。 maven环...

  • Lombok与Maven环境隔离

    Lombok注解 Maven环境隔离 本地开发环境(Local) 开发环境(Dev) 测试环境(Beta) 线上环...

  • Morphia入门

    Morphia官网 开发环境 Jetbrain IDEA Maven 一: maven依赖 官方依赖 二: 入门设...

网友评论

    本文标题:Maven环境隔离快速入门

    本文链接:https://www.haomeiwen.com/subject/wqtmictx.html