springboot 生产测试使用不同的yml配置文件

1 集成maven 的  profile

 <profiles>
    <!-- dev开发,pre预发布,prod生产环境参数配置 -->
    <profile>
      <id>dev</id>
      <properties>
        <profileActive>dev</profileActive>
      </properties>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
    </profile>
    <profile>
      <id>prod</id>
      <properties>
        <profileActive>prod</profileActive>
      </properties>
    </profile>
  </profiles>
<resources>
      <resource>
        <directory>src/main/resources</directory>
        <!-- 处理文件时替换文件中的变量 -->
        <filtering>true</filtering>
        <excludes>
          <!-- 打包时排除文件 -->
          <exclude>application.yml</exclude>
          <exclude>application-dev.yml</exclude>
          <exclude>application-prod.yml</exclude>
        </excludes>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
        <!-- 打包时包含文件 -->
        <includes>
          <include>application.yml</include>
          <include>application-${profileActive}.yml</include>
        </includes>
      </resource>
    </resources>

2.创建不同环境的配置文件

application.yml  共同的配置放在此文件,其余放置各自环境不同的配置文件

      参数   @profileActive@会读取上面pom.xml中的默认的  profileActive

3.完整的pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.test</groupId>
  <artifactId>test11</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>baihang</name>
  <description>Demo project for Spring Boot</description>

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.3.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
  </parent>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>1.3.2</version>
    </dependency>

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
      <exclusions>
        <exclusion>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.1.0</version>
    </dependency>
    <dependency>
      <!--Spring 官方提供的热部署插件 -->
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-devtools</artifactId>
      <optional>true</optional>
    </dependency>
    <!--如果要部署到自己的tomcat中,这一项配置必不可少,否则生成的war文件将无法执行。 如果不用部署到自己的Tomcat中,这一个依赖可以去掉-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
      <scope>provided</scope>
    </dependency>
    <!--在用maven 编译,打包过程中回出现javax.servlet找不到的情况,所以需要在这里配置-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.0.1</version>
    </dependency>
  </dependencies>

  <profiles>
    <!-- dev开发,pre预发布,prod生产环境参数配置 -->
    <profile>
      <id>dev</id>
      <properties>
        <profileActive>dev</profileActive>
      </properties>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
    </profile>
    <profile>
      <id>prod</id>
      <properties>
        <profileActive>prod</profileActive>
      </properties>
    </profile>
  </profiles>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
          <failOnMissingWebXml>false</failOnMissingWebXml>
        </configuration>
      </plugin>
      <!-- mybatis generator 自动生成代码插件 -->
      <plugin>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-maven-plugin</artifactId>
        <version>1.3.2</version>
        <configuration>
          <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml
          </configurationFile>
          <overwrite>true</overwrite>
          <verbose>true</verbose>
        </configuration>
      </plugin>
    </plugins>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <!-- 处理文件时替换文件中的变量 -->
        <filtering>true</filtering>
        <excludes>
          <!-- 打包时排除文件 -->
          <exclude>application.yml</exclude>
          <exclude>application-dev.yml</exclude>
          <exclude>application-prod.yml</exclude>
        </excludes>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
        <!-- 打包时包含文件 -->
        <includes>
          <include>application.yml</include>
          <include>application-${profileActive}.yml</include>
        </includes>
      </resource>
    </resources>
  </build>


</project>

猜你喜欢

转载自blog.csdn.net/liushuiziyouliu/article/details/81240781