文章目录

  • 多环境开发
    • 步骤1:父工程配置多个环境,并指定默认激活环境
    • 步骤2:执行安装查看env_dep环境是否生效
    • 步骤3:切换默认环境为生产环境
    • 步骤4:执行安装并查看env_pro环境是否生效
    • 步骤5:命令行实现环境切换
    • 步骤6:执行安装并查看env_test环境是否生效
    • 总结
  • 跳过测试
    • 方式一:IDEA工具实现跳过测试
    • 方式二:配置插件实现跳过测试
    • 方式三:命令行跳过测试

多环境开发

我们平常都是在自己的开发环境进行开发,当开发完成后,需要把开发的功能部署到测试环境供测试人员进行测试使用,等测试人员测试通过后,我们会将项目部署到生成环境上线使用。

这个时候就有一个问题是,不同环境的配置是不相同的,如不可能让三个环境都用一个数据库,所以就会有三个数据库的url配置,我们在项目中如何配置?要想实现不同环境之间的配置切换又该如何来实现呢?

maven提供配置多种环境的设定,帮助开发者在使用过程中快速切换环境。具体实现步骤:

步骤1:父工程配置多个环境,并指定默认激活环境

<profiles><!--开发环境--><profile><id>env_dep</id><properties><jdbc.url>jdbc:mysql://127.1.1.1:3306/ssm_db</jdbc.url></properties><!--设定是否为默认启动环境--><activation><activeByDefault>true</activeByDefault></activation></profile><!--生产环境--><profile><id>env_pro</id><properties><jdbc.url>jdbc:mysql://127.2.2.2:3306/ssm_db</jdbc.url></properties></profile><!--测试环境--><profile><id>env_test</id><properties><jdbc.url>jdbc:mysql://127.3.3.3:3306/ssm_db</jdbc.url></properties></profile>
</profiles>

步骤2:执行安装查看env_dep环境是否生效

查看到的结果为:

步骤3:切换默认环境为生产环境

<profiles><!--开发环境--><profile><id>env_dep</id><properties><jdbc.url>jdbc:mysql://127.1.1.1:3306/ssm_db</jdbc.url></properties></profile><!--生产环境--><profile><id>env_pro</id><properties><jdbc.url>jdbc:mysql://127.2.2.2:3306/ssm_db</jdbc.url></properties><!--设定是否为默认启动环境--><activation><activeByDefault>true</activeByDefault></activation></profile><!--测试环境--><profile><id>env_test</id><properties><jdbc.url>jdbc:mysql://127.3.3.3:3306/ssm_db</jdbc.url></properties></profile>
</profiles>

步骤4:执行安装并查看env_pro环境是否生效

查看到的结果为jdbc:mysql://127.2.2.2:3306/ssm_db

虽然已经能够实现不同环境的切换,但是每次切换都是需要手动修改,如何来实现在不改变代码的前提下完成环境的切换呢?

步骤5:命令行实现环境切换

步骤6:执行安装并查看env_test环境是否生效

查看到的结果为jdbc:mysql://127.3.3.3:3306/ssm_db

总结

总结来说,对于多环境切换只需要两步即可:

  • 父工程中定义多环境

    <profiles><profile><id>环境名称</id><properties><key>value</key></properties><activation><activeByDefault>true</activeByDefault></activation></profile>...
    </profiles>
    
  • 使用多环境(构建过程)

    mvn 指令 -P 环境定义ID[环境定义中获取]
    

跳过测试

前面在执行install指令的时候,Maven都会按照顺序从上往下依次执行,每次都会执行test,

对于test来说有它存在的意义,

  • 可以确保每次打包或者安装的时候,程序的正确性,假如测试已经通过在我们没有修改程序的前提下再次执行打包或安装命令,由于顺序执行,测试会被再次执行,就有点耗费时间了。
  • 功能开发过程中有部分模块还没有开发完毕,测试无法通过,但是想要把其中某一部分进行快速打包,此时由于测试环境失败就会导致打包失败。

遇到上面这些情况的时候,我们就想跳过测试执行下面的构建命令,具体实现方式有很多:

方式一:IDEA工具实现跳过测试

图中的按钮为Toggle 'Skip Tests' Mode,

Toggle翻译为切换的意思,也就是说在测试与不测试之间进行切换。

点击一下,出现测试画横线的图片,如下:

说明测试已经被关闭,再次点击就会恢复。

这种方式最简单,但是有点"暴力",会把所有的测试都跳过,如果我们想更精细的控制哪些跳过哪些不跳过,就需要使用配置插件的方式。

方式二:配置插件实现跳过测试

在父工程中的pom.xml中添加测试插件配置

<build><plugins><plugin><artifactId>maven-surefire-plugin</artifactId><version>2.12.4</version><configuration><skipTests>false</skipTests><!--排除掉不参与测试的内容--><excludes><exclude>**/BookServiceTest.java</exclude></excludes></configuration></plugin></plugins>
</build>

skipTests:如果为true,则跳过所有测试,如果为false,则不跳过测试

excludes:哪些测试类不参与测试,即排除,针对skipTests为false来设置的

includes: 哪些测试类要参与测试,即包含,针对skipTests为true来设置的

方式三:命令行跳过测试

使用Maven的命令行,mvn 指令 -D skipTests

注意事项:

  • 执行的项目构建指令必须包含测试生命周期,否则无效果。例如执行compile生命周期,不经过test生命周期。
  • 该命令可以不借助IDEA,直接使用cmd命令行进行跳过测试,需要注意的是cmd要在pom.xml所在目录下进行执行。

[Maven进阶]多环境配置与应用相关推荐

  1. Maven 进行多环境配置,使用profile文件进行配置

    说明:Spring和Maven都可以进行profile配置多环境,这里只介绍Maven进行管理.我的开发环境:eclipse+maven 文件结构目录: 步骤: 一.在pom.xml文件中,添加如下: ...

  2. 用maven profile实现环境配置切换

    前言 互联网后端服务通常会部署多个环境:开发环境.测试环境.预发布环境和生产环境.不同的环境通常有各自的环境配置,例如mysql服务器的地址.用户名密码,zookeeper的ip和端口等等.为了使打出 ...

  3. java、mysql、tomcat、maven、云环境配置、VUE

    JAVA篇 右键"此电脑"–>属性–>高级系统设置–>高级–>配置环境变量, 选中"系统变量"的"Path"按下编辑 ...

  4. maven修改运行环境配置

    maven中自带的tomcat是6版本,比如我们想用tomcat7,jdk1.8,我们就要通过配置来改变. 改变方式如下 <build> <plugins><plugin ...

  5. maven工程的多环境配置方案(profile)

    前言: 写一篇水文来打发下时间吧^_^. 在应用开发中, 总会遇到开发/测试/预发布/线上环境, 其环境不同, 其具体的配置项也有所不同, 因此如何快速的切换各个环境配置, 进行打包配置, 成了一个小 ...

  6. 嗯,挺全乎儿的,Spring Boot 多环境配置都在这儿了,你喜欢哪一种呢?

    目录 前言 Spring Boot 自带的多环境配置 创建不同环境的配置文件 指定运行的环境 Maven 的多环境配置 创建多环境配置文件 定义激活的变量 pom 文件中定义 profiles 资源过 ...

  7. springboot多环境配置_编辑 SpringBoot|第五章:多环境配置

    多环境配置 在开发应用时,常用部署的应用是多个的,比如:开发.测试.联调.生产等不同的应用环境,这些应用环境都对应不同的配置项,比如swagger一般上在生产时是关闭的:不同环境数据库地址.端口号等都 ...

  8. 山东大学软件学院2022年数据库课程设计环境配置教程

    iLove电影管理系统环境配置教程 项目地址:https://gitee.com/wwlccccc/database-project 欢迎大家star哦~ 课程设计报告下载地址:https://dow ...

  9. Linux系统安装jdk11环境配置

    Java11是jdk环境中一个比较经典的版本,下面介绍一下 CentOS 8 系统如何手动自定义安装配置jdk11环境变量 一.下载 jdk 的tar包到指定的目录下 1.命令如下: wget htt ...

最新文章

  1. 华为S5348交换机基本配置
  2. rabbitmq beam.smp cpu利用率过高
  3. jquery引入标红叉
  4. python输入10个学生的成绩储存在列表中_获得10名学生的平均成绩python
  5. 论文浅尝 | 采用多层注意力机制的事件检测
  6. 计算机二级2019年9月c语言题库,(3)2019年9月计算机二级C语言试题
  7. python解析.pyd文件
  8. C# 保存byte[]到数据库和读取,把byte[]写进文件文件中
  9. 3.Linux性能诊断 --- 快速检查单(10个命令) 监控
  10. MAC自带的lnmp
  11. objdump: ‘1443.14.0)‘: No such file or directory
  12. 怎么调html分辨率,屏幕分辨率怎么调
  13. excel有多行不同内容需要向下填充
  14. word2010 2003公式编辑器 格式设置
  15. Android强制竖屏
  16. 就业喜报|最高薪资15K,平均7216元,这个双十一不做“吃圭人”!
  17. 简单自定义协议的封包和解包
  18. 编辑时英文出现大间隔
  19. 第八十四章 Caché 函数大全 $ZDATEH 函数
  20. 【Android 高性能音频】AAudio 音频库 简介 ( AAudio 音频库简介 | 音频流 | 音频设备 | 共享模式 | 数据模式 )

热门文章

  1. 宇视200W 相机一天所占存储空间是多少
  2. webview里面的页面不能往下下拉(下拉卡死)解决
  3. 我把皮小浪の的 蓝色妖姬系列做进了java窗口
  4. 机器学习(一):定义
  5. 第一性原理(DFT)基础知识
  6. iOS13新特性-WWDC2019大会总结-ipadOS发布-SwiftUI重磅发布
  7. android 黑色透明背景,解决Android png透明图片转jpg时背景变黑的问题
  8. android 公钥pem编码,如何将PEM编码的Elliptic Curve公钥加载到Bouncy Castle中?
  9. linux test1
  10. MySQL索引和锁实现原理及优化