浅谈Maven环境隔离应用

 更新时间:2018年09月05日 15:10:06   作者:Steafan_  
这篇文章主要介绍了浅谈Maven环境隔离应用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

前言

在大大小小的公司中,开发总是多环境的,可能是2个(dev、prod)或者是4个甚至更多(dev、prod、beta、local)。

我们需要针对的配置不同环境下的服务器地址或数据库地址或属性参数等等,而Maven的环境隔离就帮我们解决了这实际性的问题,轻松解决完成环境隔离。

什么是Maven环境隔离

顾名思义,Maven环境隔离就是将开发中的环境分隔开,方便进行开发。这个在实际项目中用的还是蛮多的,如果你的项目用的Maven构建但是没用环境隔离,请立即将项目做一下环境隔离,相信我,你会回来关注我的!

项目环境

我们一般分为以下4种

  1. 本地开发环境(Local)
  2. 开发环境(Dev)
  3. 测试环境(Beta)
  4. 线上环境(Prod)

再次说明,Maven帮我们避免了人工修改的弊端,即容易犯错,轻松分环境编译,打包、部署等等

Maven环境隔离配置

1、pom.xml中build节点下增加

<resources>
 <resource>
  <directory>src/main/resources.${deploy.type}</directory>
  <excludes>
   <exclude>*.jsp</exclude>
  </excludes>
 </resource>
 <resource>
  <directory>src/main/resources</directory>
 </resource>
</resources>

2、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>

3、根据profile中写到,我们要新建对应的资源文件夹

4、编译打包时添加打包命令 -P${环境标识}

mvn clean package -Dmaven.test.skip=true -Pdev

之后就可以在target中看到对应的环境配置,需要注意的是Maven Project下的Profiles的选择是发布的时候的版本,即发布到Tomcat时的环境参数。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java创建线程池的几种方式代码示例

    Java创建线程池的几种方式代码示例

    这篇文章主要介绍了Java中创建线程池的四种方式,包括使用Executors类、ThreadPoolExecutor类、Future和Callable接口以及Spring的ThreadPoolTaskExecutor,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-01-01
  • IDEA的常见的设置和优化功能图文详解

    IDEA的常见的设置和优化功能图文详解

    这篇文章主要介绍了IDEA的常见的设置和优化功能,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • jenkins中如何集成commander应用的完整步骤

    jenkins中如何集成commander应用的完整步骤

    jenkins是一个用java编写的开源的持续集成工具,在与oracle发生争执后,项目从hudson项目独立出来,下面这篇文章主要给大家介绍了关于jenkins中如何集成commander应用的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-05-05
  • Java编程实现递增排序链表的合并

    Java编程实现递增排序链表的合并

    这篇文章主要介绍了Java编程实现递增排序链表的合并,两种方法,代码分享给大家,供需要的朋友参考。
    2017-10-10
  • Java中stream的用法详细解读

    Java中stream的用法详细解读

    这篇文章主要介绍了Java中stream的用法详细解读,Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作,使用Stream API 对集合数据进行操作,就类似于使用SQL执行的数据库查询,需要的朋友可以参考下
    2023-10-10
  • SpringCloud重试机制配置详解

    SpringCloud重试机制配置详解

    本篇文章主要介绍了SpringCloud重试机制配置详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • 如何在Java中使用支付宝SDK来获取用户的OpenID

    如何在Java中使用支付宝SDK来获取用户的OpenID

    在支付宝开放平台中,获取用户的OpenID通常是在用户授权后通过支付宝的OAuth 2.0授权流程实现的,以下是一个基本的步骤说明,以及如何在Java中使用支付宝SDK来获取用户的OpenID
    2024-08-08
  • SpringMVC项目访问controller时候报404的解决

    SpringMVC项目访问controller时候报404的解决

    这篇文章主要介绍了SpringMVC项目访问controller时候报404的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • SpringBoot单元测试框架Mockito介绍及使用

    SpringBoot单元测试框架Mockito介绍及使用

    与集成测试将系统作为一个整体测试不同,单元测试更应该专注于某个类。所以当被测试类与外部类有依赖的时候,尤其是与数据库相关的这种费时且有状态的类,很难做单元测试。但好在可以通过“Mockito”这种仿真框架来模拟这些比较费时的类,从而专注于测试某个类内部的逻辑
    2023-01-01
  • 使用@Slf4j注解,log.info()无法使用问题

    使用@Slf4j注解,log.info()无法使用问题

    在使用Lombok的@Slf4j注解打印日志时遇到问题,通过降低Lombok版本(从1.18.x降至1.16.10)解决了问题
    2024-12-12

最新评论