[Maven进阶]多环境配置与应用

网友投稿 273 2022-09-05

[Maven进阶]多环境配置与应用

文章目录

​​多环境开发​​

​​步骤1:父工程配置多个环境,并指定默认激活环境​​​​步骤2:执行安装查看env_dep环境是否生效​​​​步骤3:切换默认环境为生产环境​​​​步骤4:执行安装并查看env_pro环境是否生效​​​​步骤5:命令行实现环境切换​​​​步骤6:执行安装并查看env_test环境是否生效​​​​总结​​

​​跳过测试​​

​​方式一:IDEA工具实现跳过测试​​​​方式二:配置插件实现跳过测试​​​​方式三:命令行跳过测试​​

多环境开发

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

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

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

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

env_dep jdbc:mysql://127.1.1.1:3306/ssm_db true env_pro jdbc:mysql://127.2.2.2:3306/ssm_db env_test jdbc:mysql://127.3.3.3:3306/ssm_db

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

查看到的结果为:

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

env_dep jdbc:mysql://127.1.1.1:3306/ssm_db env_pro jdbc:mysql://127.2.2.2:3306/ssm_db true env_test jdbc:mysql://127.3.3.3:3306/ssm_db

步骤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​​

总结

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

父工程中定义多环境

环境名称 value true ...

使用多环境(构建过程)

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

跳过测试

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

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

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

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

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

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

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

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

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

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

maven-surefire-plugin 2.12.4 false **/BookServiceTest.java

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

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

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

方式三:命令行跳过测试

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

注意事项:

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:猿大侠:等了3年!iPhone 13这功能又凉了……!
下一篇:[SpringBoot]入门案例
相关文章

 发表评论

暂时没有评论,来抢沙发吧~