springboot结合maven进行多环境管理

spring.profiles.active 可以指定不同的开发环境, 指定不同的application-dev,application-prod等等的不同环境的文件,但是无法只能特定的文件夹下的一堆文件,所以我们这里使用maven里面的profiles和resources标签进行联合处理,使得我们在启动项目的时候,通过 在可以设置不同的环境

后面发现.这种不太合适, 打出包了,但是application.yaml文件里面的${environment}没有给值的话.默认会是使用8080端口,所以 不太实用, 应该的作用就是分环境打包 ,打包的时候加入-P dev 进行不同环境的打包 , 所以应该去掉application.yaml

作用参考如下文档:https://www.cnblogs.com/daixianjun/p/maven-package.html

项目结构如下:
在这里插入图片描述
application.yaml文件

spring:
  profiles:
    active: ${environment}

application-dev.yaml

server:
  port: 8080

application-test.yaml

server:
  port: 8081

pom配置

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>2.2.2.RELEASE</version>
      <relativePath/> <!-- lookup parent from repository -->
  </parent>
  <groupId>com.mashibing</groupId>
  <artifactId>study</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>study</name>
  <description>Demo project for Spring Boot</description>

  <properties>
      <java.version>1.8</java.version>
  </properties>

  <profiles>
      <profile>
          <id>test</id>
          <properties>
              <environment>test</environment>
          </properties>
           <!--如果没有配置启动参数, 默认使用test -->
          <activation>
              <activeByDefault>true</activeByDefault>
          </activation>
      </profile>
      <profile>
          <id>dev</id>
          <properties>
              <environment>dev</environment>
          </properties>
      </profile>
  </profiles>
  <dependencies>
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
      </dependency>

      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-test</artifactId>
          <scope>test</scope>
          <exclusions>
              <exclusion>
                  <groupId>org.junit.vintage</groupId>
                  <artifactId>junit-vintage-engine</artifactId>
              </exclusion>
          </exclusions>
      </dependency>
  </dependencies>

  <build>
      <resources>
          <resource>
              <directory>src/main/resources/</directory>
             <!-- 启用过滤 即该资源中的变量将会被过滤器中的值替换 这里就会替换application.yaml掉${environment} 为启动参数配置的字符 -->
              <filtering>true</filtering>
         <!--不处理这些文件 -->
              <excludes>
                  <exclude>dev/**</exclude>
                  <exclude>test/**</exclude>
              </excludes>
          </resource>
           <!--加入特定环境下的配置文件  跟上面profiles联合一起使用 -->
          <resource>
              <directory>src/main/resources/${environment}</directory>
          </resource>
      </resources>
      <plugins>
          <plugin>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-maven-plugin</artifactId>
          </plugin>
      </plugins>
  </build>

</project>

进行maven打包的命令如下:
ng)
mvn package -P test 指定test目录下的环境配置文件

总的来说作用就是打包的时候 ,需要进行配置,才能得到对应环境的项目配置
最终打成jar的配置目录如下:
在这里插入图片描述
说明 最终是只留下一份配置文件, 所以打包的时候必须进行配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值