首先,我们需要有不同的配置文件
其次,我们需要在pom.xml中进行配置
<!-- 构件羡慕所需要的信息 -->
<build>
<!-- 使用的插件列表 -->
<plugins>
<!-- plugin元素包含描述插件所需要的信息 -->
<plugin>
<!-- 数据库映射类生成的插件 -->
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>${mybatis-generator.version}</version>
<configuration>
<!-- 详细信息和覆盖 -->
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<!-- 该插件的依赖 -->
<dependencies>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>${mybatis-generator.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
</dependencies>
</plugin>
<!-- 这是maven插件的插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<!-- 在构建生命周期中执行一组目标的配置。每个目标可能有不同的配置。 -->
<executions>
<!-- execution元素包含了插件执行需要的信息 -->
<execution>
<!-- 执行目标的标识符,用于标识构建过程中的目标,或者匹配继承过程中需要合并的执行目标 -->
<id>copy-resources</id>
<!-- 绑定了目标的构建生命周期阶段,如果省略,目标会被绑定到源数据里配置的默认阶段 -->
<!-- 在default生命周期的 validate阶段就执行resources插件的copy-resources目标 -->
<phase>validate</phase>
<!-- 配置的执行目标 -->
<goals>
<goal>copy-resources</goal>
</goals>
<!-- 作为DOM对象的配置 -->
<configuration>
<!-- 指定resources插件处理资源文件到哪个目录下 -->
<outputDirectory>${project.build.outputDirectory}</outputDirectory>
<!-- 也可以用下面这样的方式(指定相对url的方式指定outputDirectory) <outputDirectory>target/classes</outputDirectory> -->
<!-- 待处理的资源定义 -->
<overwrite>true</overwrite>
<!-- 二进制文件的复制 -->
<nonFilteredFileExtensions>
<!-- <nonFilteredFileExtension>p12</nonFilteredFileExtension> -->
</nonFilteredFileExtensions>
<resources>
<resource>
<!-- 指定resources插件处理哪个目录下的资源文件 -->
<directory>src/main/conf/${env}</directory>
<targetPath></targetPath>
<!-- 指定不需要处理的资源 -->
<!-- <excludes> <exclude>WEB-INF/*.*</exclude> </excludes> -->
<filtering>true</filtering>
</resource>
</resources>
</configuration>
<inherited></inherited>
</execution>
</executions>
</plugin>
</plugins>
<!-- 定位打包配置文件 -->
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
<!-- 用于正确打包repository里的xml文件 -->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
<finalName>ROOT</finalName>
</build>
<!-- 这里就是开始进行分类配置,不同的环境,我们给他不同的id,这个id与截图中的文件夹名称相同,因为打包的时的打包语句中会有该id,id和哪个对应,就使用哪个配置环境 -->
<profiles>
<!-- 开发环境,默认激活 -->
<profile>
<id>dev</id>
<properties>
<env>dev</env>
</properties>
<activation>
<!--默认启用的是dev环境配置 -->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!-- 测试环境 -->
<profile>
<id>test</id>
<properties>
<env>test</env>
</properties>
</profile>
<!-- 生产环境 -->
<profile>
<id>prod</id>
<properties>
<env>prod</env>
</properties>
</profile>
<!-- 预发布环境 -->
<profile>
<id>uat</id>
<properties>
<env>uat</env>
</properties>
</profile>
</profiles>
配置好了之后,在打包的时候写入对应的关键字,也就是配置文件中的profile的id,就可以读取对应的配置文件了。