maven 环境隔离

环境隔离

目前只有一个配置文件,但是不方便未来的自动化部署

方案

新增application-dev.ymlapplication-prod.yml
隔离成开发环境生产环境

过程

首先确保src/main/resources目录是有application.yml

src/main/resources新建application-dev.ymlapplication-prod.yml

  • application-dev.yml
# 开发环境
spring:
    jpa:
        show-sql: true
  • application-prod.yml
# 生产环境
spring:
    jpa:
        show-sql: false
  • pom.xml
<dependencies>
    ...
</dependencies>

<profiles>
  <profile>
    <!--   开发环境   -->
    <id>dev</id>
    <activation>
      <!-- 表示如果编译时没有指定环境,则以该环境为默认环境 -->
      <activeByDefault>true</activeByDefault>
    </activation>
    <properties>
      <!--使用${environment}获取值-->
      <environment>dev</environment>
    </properties>
  </profile>
  <profile>
    <!--   生产环境   -->
    <id>prod</id>
    <properties>
      <environment>prod</environment>
    </properties>
  </profile>
</profiles>
<build>
  <resources>
    <!--排除环境配置文件-->
    <resource>
      <directory>src/main/resources</directory>
      <excludes>
        <exclude>application-*.yml</exclude>
      </excludes>
    </resource>

    <resource>
      <directory>src/main/resources</directory>
      <filtering>true</filtering>
      <!-- 打包时包含的文件 -->
      <includes>
        <include>application-${environment}.yml</include>
      </includes>
    </resource>
  </resources>
  ...
</build>

编译打包命令

mvn clean package -Dmaven.test.skip=true -Pdev   # 开发环境的打包命令
mvn clean package -Dmaven.test.skip=true -Pprod  # 生产环境的打包命令

运行命令

java -jar bookstore-v0.1.jar --spring.profiles.active=dev  # 开发环境运行
java -jar bookstore-v0.1.jar --spring.profiles.active=prod # 生产环境运行

idea上配置

Environment variables 设置为--spring.profiles.active=dev

并且Active profiles 设置为dev

posted @ 2020-02-05 18:47  Draymonder  阅读(61)  评论(0编辑  收藏