文档章节

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

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

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个,其它配置文件也不少。所以没有那么精力去做这么多功能或扩展。
后台要接的话就是使用携程 阿波罗配置中心来接😙
Feng_Yu
Feng_Yu
不建议这么写,你这样实际没把产品环境和开发环境的敏感信息分开。建议直接用spring boot的external configuration功能。所有的敏感信息外部化,而不是写死在application.yml中,在这个配置文件只提供默认配置即可,默认配置按照开发环境,产品环境全部用环境变量覆盖掉。这样打包也没那么麻烦了。
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
《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
【SpringBoot专题】快速体验

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

张丰哲
2018/08/05
0
0
吐血整理最佳实践:SpringBoot整合Vue前后端分离开发

[toc] 开发环境 IDEA V2018.5 npm v6.4.x vue-cli v2.9.x 创建项目 IDEA > Create New Project > Gradle 此处的 Frameworks全部取消勾选,接着就一直 Next,提示填写的地方填写,不需要填写的...

__夏悸
2018/10/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

MySQL的分表与分区

MySQL分表分区是解决大数据量导致MySQL性能低下的两种方法。 什么是MySQL分表 从表面意思上看,MySQL分表就是将一个表分成多个表,数据和数据结构都有可能会变。MySQL分表分为垂直分表和水平...

吴伟祥
17分钟前
0
0
MySQL查询执行

当我们希望MySQL能够以更高的性能运行查询时,最好的办法就是弄清楚MySQL是如何优化和执行查询的。一旦理解了这一点,很多查询优化工作实际上就是遵循一些原则让优化器能够按照预想的合理方式...

问题终结者
今天
1
0
CDH5动静态资源池配置与回滚

关于动态 静态资源池的配置以前都有提过,可以从以下几篇了解: YARN动态资源池配置案例 https://yq.aliyun.com/ziliao/346856# Hadoop YARN配置参数剖析(4)—Fair Scheduler相关参数 Hadoop...

hblt-j
今天
3
0
WordPress仿站实战教程

有一个月没有写blog了,一直在学习wordpress的知识,现在能够进行简单的政府企业门户网站的仿制,wordpress的主题订制,一般是对前端要求比较高,wordpress学会了,建站还是非常的快的。下面...

临江仙卜算子
今天
4
0
图像库stb_image

https://github.com/nothings/stb 目前一般主流的图像格式也就是bmp,jpg,png,tga,dds,除了DDS一般是给DX用的,虽然一堆OpenGL程序也有用的,但是我一般只用png和tga, png不用说了,带a...

robslove
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部