文档章节

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

唐代de豆腐
 唐代de豆腐
发布于 06/11 11:03
字数 177
阅读 245
收藏 6
点赞 0
评论 5

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豆腐

粉丝 36
博文 15
码字总数 5498
作品 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 2.0 系列001 -- 入门介绍以及相关概念

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

路上有你0314 ⋅ 05/10 ⋅ 0

(一)SpringBoot——helloworld

一、为什么会诞生SpringBoot? 先看看spring的优势: 1、代码解耦、简化开发:代码中不再需要new去构造对象,而是交由spring去管理对象。 2、支持AOP:面向切面的编程,方便进行权限拦截、日...

solidwang ⋅ 04/17 ⋅ 0

恒宇少年/spring-boot-chapter

简书整套文档以及源码解析 专题 专题名称 专题描述 001 Spring Boot 核心技术 讲解SpringBoot一些企业级层面的核心组件 002 Spring Cloud 核心技术 对Spring Cloud核心技术全面讲解 003 Quer...

恒宇少年 ⋅ 04/19 ⋅ 0

springboot打成jar包后配置外部资源映射成静态资源

很多的项目都要上传图片那些,然后通过打包jar包或者war包发布到服务器上,我们不可能把上传图片的文件夹放在jar包或者war包里面,那样会越来越大。所以有了下面的配置,其他框架都好说可以把...

duangecho ⋅ 05/09 ⋅ 0

SpringBoot之项目打war包和jar包-yellowcong

这一章,介绍关于SpringBoot如何打成war包和jar包的,具体步骤:1、配置pom.xml的tomcat,2、在pom.xml配置springboot的启动类,3、配置打包方式,4、配置启动类情况。我这个地方是吃了一个亏啊...

yelllowcong ⋅ 04/13 ⋅ 0

微服务构建: Spring Boot

在展开 Spring Cloud 的微服务架构部署之前, 我们先了解一下用于构建微服务的基础框架-Spring Boot。 由于 Spring Cloud 的构建基于 Spring Boot 实现, 在后续的示例中我 们将大量使用 Sp...

wenhy ⋅ 昨天 ⋅ 0

Spring Boot 项目自动发布

Spring Boot 项目自动发布 Spring Boot 项目自动发布 简介 在公司从移动端转后端已经快一年了,使用的技术框架一直是Spring Boot,和以前大学时候基于Tomcat的不太一样。 这篇文章简单介绍下...

流水不腐小夏 ⋅ 04/24 ⋅ 0

SpringBoot 入门实例

SpringBoot 是由 pivotal 提供的 Java 开发框架,伴随着 spring 4.0 版本一起发布,旨在简化 Spring 项目的初始化及开发过程,框架本身为开发过程提供了大量的默认配置,当然我们也可以通过简...

Aotian ⋅ 05/29 ⋅ 0

springboot开发简单的web应用前篇

你已经会spring了,也非常熟悉springmvc的开发,平时你搭建个web应用简单吗?好像也不难!那么今天我来试试用springboot来开发个简单的web应用来试试。 在正式讲解springboot开发web应用之前...

GeCoder ⋅ 05/04 ⋅ 0

springboot在jetty+websocket的环境下的junit测试失败

这个问题描述起来可能还比较长。 首先我在springboot中选择了jetty作为服务器,然后现在我希望使用jetty的websocket功能,因此边加了jetty的websocket包。按照网上的教程,只要注意把tomcat的...

kuma_ller ⋅ 05/27 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

浅谈springboot Web模式下的线程安全问题

我们在@RestController下,一般都是@AutoWired一些Service,由于这些Service都是单例,所以并不存在线程安全问题。 由于Controller本身是单例模式 (非线程安全的), 这意味着每个request过来,...

算法之名 ⋅ 今天 ⋅ 0

知乎Java数据结构

作者:匿名用户 链接:https://www.zhihu.com/question/35947829/answer/66113038 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 感觉知乎上嘲讽题主简...

颖伙虫 ⋅ 今天 ⋅ 0

Confluence 6 恢复一个站点有关使用站点导出为备份的说明

推荐使用生产备份策略。我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。XML 导出备...

honeymose ⋅ 今天 ⋅ 0

JavaScript零基础入门——(九)JavaScript的函数

JavaScript零基础入门——(九)JavaScript的函数 欢迎回到我们的JavaScript零基础入门,上一节课我们了解了有关JS中数组的相关知识点,不知道大家有没有自己去敲一敲,消化一下?这一节课,...

JandenMa ⋅ 今天 ⋅ 0

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 今天 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部