一、多环境开发

怎么创建maven版的java工程(Java开发学习Maven多环境配置切换与跳过测试的三种方式)(1)

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:执行maven install安装即配置好env_dep环境

怎么创建maven版的java工程(Java开发学习Maven多环境配置切换与跳过测试的三种方式)(2)

步骤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:命令行实现环境切换

怎么创建maven版的java工程(Java开发学习Maven多环境配置切换与跳过测试的三种方式)(3)

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

二、跳过测试

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

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

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

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

怎么创建maven版的java工程(Java开发学习Maven多环境配置切换与跳过测试的三种方式)(4)

图中的按钮为 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版的java工程(Java开发学习Maven多环境配置切换与跳过测试的三种方式)(5)

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

注意事项:

,