文档章节

Gradle 生产与开发build.gradle配置不一样时打包(Springboot)

唐代de豆腐
 唐代de豆腐
发布于 06/11 11:03
字数 177
阅读 286
收藏 6

1.先说下缘由,项目没有使用配置中心,所以本地和开发有不同的build.gradle文件

def env=System.getProperty("profile") ?:"dev"
if(env=='prd'){
    apply from:"build-prd.gradle"
}else{
    apply from:"build-dev.gradle"
}

所以代码是这样的。

如何打包呢,直接 gradle bootWar -Dprofile=prd 即可.

2.如果也想application.properties配置文件开发打包呢?哈哈,可以这样写

def env=System.getProperty("profile") ?:"dev"
bootWar {
   doFirst {
      def file=new File("${buildDir}/resources/main/application.properties")
      println("正在编译war包---环境[${env}]")
      file.newWriter(false).with {
         it.write("spring.profiles.active=${env}")
         it.flush()
         it.close()
      }
   }
}

当然你的springBoot工程要配置成多环境

将默认的application.properties 修改成 

spring.profiles.active=dev

然后分别增加各个版本的版本文件,如

 

© 著作权归作者所有

共有 人打赏支持
唐代de豆腐

唐代de豆腐

粉丝 39
博文 11
码字总数 4442
作品 0
杭州
后端工程师
加载中

评论(5)

唐代de豆腐
唐代de豆腐

引用来自“卖爷爷的老红薯”的评论

gradle 编译的时候,可以传环境变量的参数的,。
gradle bootWar -Dprofile=prd
卖爷爷的老红薯
卖爷爷的老红薯
gradle 编译的时候,可以传环境变量的参数的,。
唐代de豆腐
唐代de豆腐

引用来自“Feng_Yu”的评论

不建议这么写,你这样实际没把产品环境和开发环境的敏感信息分开。建议直接用spring boot的external configuration功能。所有的敏感信息外部化,而不是写死在application.yml中,在这个配置文件只提供默认配置即可,默认配置按照开发环境,产品环境全部用环境变量覆盖掉。这样打包也没那么麻烦了。
还有这里生产build.gradle与测试build.gradle 还不一样,SO
唐代de豆腐
唐代de豆腐
建议是挺好的,我这个只是适合当下场景。
因为客户方技术人员就2个,子项目加起来有7-8个,其它配置文件也不少。所以没有那么精力去做这么多功能或扩展。
后台要接的话就是使用携程 阿波罗配置中心来接:kissing_smiling_eyes:
Feng_Yu
Feng_Yu
不建议这么写,你这样实际没把产品环境和开发环境的敏感信息分开。建议直接用spring boot的external configuration功能。所有的敏感信息外部化,而不是写死在application.yml中,在这个配置文件只提供默认配置即可,默认配置按照开发环境,产品环境全部用环境变量覆盖掉。这样打包也没那么麻烦了。
《Spring Boot极简教程》第8_章: Spring Boot集成Groovy混合Java开发

第8_章: Spring Boot集成Groovy混合Java开发 本章我们使用SpringBoot集成Groovy混合Java开发一个极简的RestAPI。 数据库使用mysql,ORM层使用mybatis,模板引擎使用freemarker,构建工具使用...

程序员诗人
2017/04/15
0
0
8.1 Spring Boot集成Groovy混合Java开发

8.1 Spring Boot集成Groovy混合Java开发 本章节我们使用SpringBoot集成Groovy混合Java开发一个极简的RestAPI。 数据库使用mysql,ORM层使用mybatis,模板引擎使用freemarker,构建工具使用G...

程序员诗人
2017/04/25
0
0
《Spring Boot 实战:从0到1》第2章 快速开始Hello World

第2章 快速开始Hello World 大约20年前,程序员们使用“企业级Java Bean”(EJB)开发企业应用,需要配置复杂的XML。在二十世纪初期,新兴Java技术——Spring,横空出世。使用极简XML和POJO(...

程序员诗人
2017/08/01
0
0
【SpringBoot专题】快速体验

前言 在Spring 4推出来之前,我们的编码是存在一些问题,比如:大量的xml配置存在项目中,配置相当繁琐;整合第三方框架非常麻烦;开发效率和部署效率不高等问题。正是因为这些问题,Spring开...

张丰哲
08/05
0
0
SpringBoot 2.0 系列001 -- 入门介绍以及相关概念

SpringBoot 2.0 系列001 -- 入门介绍以及相关概念 什么是SpringBoot? 项目地址:http://projects.spring.io/spring-boot/ SpringBoot介绍 Spring Boot使开发独立的,产品级别的基于Spring的...

路上有你0314
05/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

防止快速重复点击的两种思维

防止重复执行的两种思维 场景 下单时,提交按钮,因为网络卡顿或者手快重复点击,导致重复提交订单; 微博,更新个人状态或发表评论时,快速多次点击[发送]按钮,导致相同的信息发送多次. 解决思路 ...

黄威
27分钟前
0
0
在windows环境下使用Virtualbox虚拟Debian系统来运行Docker

标题绕口。 我之前一直使用 Virtualbox 和 homestead 来运行我的 PHP 开发环境。最近决心开始尝试 DevOps,使得开发、部署容器化,来化解人为操作失误和环境不兼容等问题造成的各种损失。就打...

zgldh
29分钟前
0
0
python map()

map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。(利用生成器的原理,并不马上返回值,...

南桥北木
43分钟前
0
0
分享几个 SpringBoot 实用的小技巧

前言 最近分享的一些源码、框架设计的东西。我发现大家热情不是特别高,想想大多数应该还是正儿八经写代码的居多;这次就分享一点接地气的: SpringBoot 使用中的一些小技巧。 算不上多高大上...

Java干货分享
44分钟前
2
0
day123-20181021-英语流利阅读-待学习

这款新字体,比记忆面包还管用 Lala 2018-10-21 1.今日导读 字体能跟学习效果有什么关系?你还别说,来自澳洲的心理学家和设计师们,还真创造了一款号称能够帮助大家记忆信息、增强学习效果的...

飞鱼说编程
55分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部