博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springboot+idea多环境配置打包
阅读量:4303 次
发布时间:2019-05-27

本文共 2478 字,大约阅读时间需要 8 分钟。

在SpringBoot工程里面可以通过application-*.yml的方式实现多环境打包。但是打包的时候会把所有的.yml配置文件都打到包里。

本篇简介下,通过maven来控制哪些配置需要打包。

1.配置

1-1.pom配置

4.0.0
...省略avg和依赖等...
dev
true
dev
prod
false
prod
${project.artifactId}-${project.version}
src/main/resources
application-${profilesActive}.properties
application.properties
**/*.xml
true
org.springframework.boot
spring-boot-maven-plugin
  • 使用了profilesActive变量
  • activeByDefault为true定义了默认值。即profilesActive默认值为dev

1-2.项目配置

application.properties配置文件

server.port=8080spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/xxx_tool?useUnicode=true&characterEncoding=UTF-8spring.jpa.hibernate.ddl-auto=updatespring.jpa.show-sql=truespring.profiles.active=@profilesActive@

这使用@profilesActive@来取上面pom定义的变量值profilesActive,给spring.profiles.active赋值。

application-dev.properties配置文件

spring.datasource.username=iworkh1spring.datasource.password=iworkh123

定义了dev的数据库信息

application-prod.properties配置文件

server.port=8989spring.datasource.username=iworkh2spring.datasource.password=iworkh321

定义了prod的数据库信息

2.打包

主要介绍下命令行,两种方式

  • -D 指定maven属性profilesActive
  • -P 参数激活相应的profile。对应pom.xml中profiles->profile->id
# packagemvn clean package -Dmaven.test.skip=true -D profilesActive=prodmvn clean package -Dmaven.test.skip=true -P prod# installmvn clean install -Dmaven.test.skip=true -D profilesActive=prodmvn clean install -Dmaven.test.skip=true -P prod

打包后可以通过压缩软件打开,查看里面配置文件内容。

当然,通过idea的maven控制面板也可以,都一个道理。只不过通过页面选择而已,一个通过命令行操作。

3.本地启动

主要介绍下idea如何本地指定不同环境启动。

网上有很多教程,但是没说清楚,结果在尝试的时候,总是没生效,很郁闷。

idea启动环境,主要分两个步骤

  • 1.编译文件(maven来处理)
  • 2.运行

即运行时没有target下class文件,通过maven来构建生成文件,然后运行.

3-1.编译

idea的maven面板打开后,上面有个Profiles选项。将要运行的环境勾选上(✔),默认是dev,所以看到dev默认是(✔)

即要运行prod的,要将prod的勾选上(✔)。(这一步,网上很少提到)

3-2.运行

打开run的配置面板,然后将Active profiles里填上环境prod。配置好后,点运行,看控制台log是否是需要的结果。

4.推荐

能读到文章最后,首先得谢谢您对本文的肯定,你的肯定是对博主最大的鼓励。

你觉本文有帮助,那就点个👍

你有疑问,那就留下您的💬
怕把我弄丢了,那就把我⭐

转载地址:http://vkhws.baihongyu.com/

你可能感兴趣的文章
Mysql到HBase的迁移
查看>>
Sqoop import进阶
查看>>
Hive语句是如何转化成MapReduce任务的
查看>>
Hive创建table报错:Permission denied: user=lenovo, access=WRITE, inode="":suh:supergroup:rwxr-xr-x
查看>>
Hive执行job时return code 2排查
查看>>
hive常用函数及数据结构介绍
查看>>
Hive面试题干货(亲自跟着做了好几遍,会了的话对面试大有好处)
查看>>
力扣题解-230. 二叉搜索树中第K小的元素(递归方法,中序遍历解决)
查看>>
力扣题解-123. 买卖股票的最佳时机 III(动态规划)
查看>>
Django 源码阅读:服务启动(wsgi)
查看>>
Django 源码阅读:url解析
查看>>
Docker面试题(一)
查看>>
第一轮面试题
查看>>
2020-11-18
查看>>
Docker面试题(二)
查看>>
一、redis面试题及答案
查看>>
消息队列2
查看>>
C++ 线程同步之临界区CRITICAL_SECTION
查看>>
测试—自定义消息处理
查看>>
MFC中关于虚函数的一些问题
查看>>