文档章节

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

唐代de豆腐
 唐代de豆腐
发布于 06/11 11:03
字数 177
阅读 264
收藏 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中,在这个配置文件只提供默认配置即可,默认配置按照开发环境,产品环境全部用环境变量覆盖掉。这样打包也没那么麻烦了。
【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
SpringBoot与Mybatis整合的多模块项目

springBoot项目构建 Spring多模块项目的构建 1.使用Idea构建一个Springboot项目 File-->new-->project-->springInitializr-->(NEXT) 2.主项目pom中添加依赖 ~ org.springframework.bootspri......

JavionXiong
06/22
0
0
SpringBoot学习之基础篇

在前面的博文中,已经演示过springboot与Mybatis集成的实例,本篇再来探讨一下SpringBoot的基础。 一。关于SpringBoot   SpringBoot可以基于Spring轻松创建可以“运行”的、独立的、生产级...

java~nick
2017/10/31
0
0
补习系列-springboot项目基础搭建课

目录 前言 一、基础结构 二、添加代码 三、应用配置 四、日志配置 五、打包部署 小结 前言 springboot 最近火的不行,目前几乎已经是 spring 家族最耀眼的项目了。抛开微服务、技术社区这些推...

美码师
07/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

49.Nginx防盗链 访问控制 解析php相关 代理服务器

12.13 Nginx防盗链 12.14 Nginx访问控制 12.15 Nginx解析php相关配置(502的问题) 12.16 Nginx代理 扩展 502问题汇总 http://ask.apelearn.com/question/9109 location优先级 http://blog....

王鑫linux
今天
1
0
Nginx防盗链、访问控制、解析php相关配置、Nginx代理

一、Nginx防盗链 1. 编辑虚拟主机配置文件 vim /usr/local/nginx/conf/vhost/test.com.conf 2. 在配置文件中添加如下的内容 { expires 7d; valid_referers none blocked server_names *.tes......

芬野de博客
今天
0
0
spring EL 和资源调用

资源调用 import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.PropertySource;import org.springframework.core.io.Resource;......

Canaan_
今天
1
0
memcached命令行、memcached数据导出和导入

一、memcached命令行 yum装telnet yum install telent 进入memcached telnet 127.0.0.1 11211 命令最后的2表示,两位字节,30表示过期时间(秒) 查看key1 get key1 删除:ctrl+删除键 二、m...

Zhouliang6
今天
1
0
Linux定时备份MySQL数据库

做项目有时候要备份数据库,手动备份太麻烦,所以找了一下定时备份数据库的方法 Linux里有一个 crontab 命令被用来提交和管理用户的需要周期性执行的任务,就像Windows里的定时任务一样,用这...

月夜中徘徊
今天
1
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部