博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
gradle项目中profile的实现
阅读量:5040 次
发布时间:2019-06-12

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

gradle中并没有直接类似支持,只能变通的用其它方法来处理,在打包不同环境的应用时,通常会遇到二类问题:

一、不同的环境依赖的jar包不同

拿web开发来说,生产环境一般会采用weblogic,jboss这类重量级的容器,通常这类web server已经内置了很多第三方的通用jar包,而开发环境,一般采用嵌入式jetty这类轻量级的容器,内置的jar包会少一些,在maven中可以用<scope>provided</scope>来处理,到了gradle中可以这么处理:

build.gradle文件参考下面的写法:

def env = System.getProperty("env") ?: "dev"apply from: "profile-${env}.gradle"

大概意思是,根据传入的参数env不同,加载不同的profile文件。在同级目录下,要放二个文件(下面演示的场景为,dev环境加载的spring版本为4.1.6,而prod环境加载的spring版本为4.2.3):

profile-dev.gradle

dependencies {    compile 'org.springframework:spring-core:4.1.6.RELEASE'    compile 'org.springframework:spring-beans:4.1.6.RELEASE'    compile 'org.springframework:spring-context:4.1.6.RELEASE'    compile 'org.springframework:spring-context-support:4.1.6.RELEASE'    compile 'org.springframework:spring-aop:4.1.6.RELEASE'}

profile-prod.gradle

dependencies {    compile 'org.springframework:spring-core:4.2.3.RELEASE'    compile 'org.springframework:spring-beans:4.2.3.RELEASE'    compile 'org.springframework:spring-context:4.2.3.RELEASE'}

编译时,gradle命令这么写:

gradle build -Denv=prod  这样编译的就是prod环境

gradle build -Denv=dev  这样编译的就是dev环境(注:dev是默认环境,所以如果是dev环境,最后的-Denv=dev也可以省略)

 

二、不同的环境,配置的参数不同

思路:为每个环境建不同的目录,把各环境的属性文件按目录存放,编译时动态设置gradle的资源目录

sourceSets {    main {        resources {            srcDirs = ["src/main/resources", "src/main/profile/$env"]        }    }}

在刚才的基础上,再加入这一段即可。

整个项目的结构图如下:

 

示例源代码: 

转载于:https://www.cnblogs.com/yjmyzz/p/gradle-profile.html

你可能感兴趣的文章
跟Google学习Android开发-起始篇-用碎片构建一个动态的用户界面(3)
查看>>
精密整流电路(AD630)
查看>>
实验四
查看>>
js判断手指滑动方向(移动端)
查看>>
POJ 2112 Optimal Milking (Dinic + Floyd + 二分)
查看>>
HDU 1003 Max Sum 求区间最大值 (尺取法)
查看>>
简单实现web单点登录
查看>>
辣鸡蒟蒻的每日打卡
查看>>
IOS9 Swift
查看>>
SOCKET类型定义及应用
查看>>
[CF191](Fools and Roads)
查看>>
浏览器常见状态码
查看>>
Django model 反向引用中的related_name
查看>>
电信网关-天翼网关-GPON-HS8145C设置桥接路由拨号认证
查看>>
稀疏矩阵
查看>>
网络爬虫设计中需要注意的几个问题
查看>>
POJ 2369 Permutations (置换的秩P^k = I)
查看>>
点击模态框滑动出来 抽屉
查看>>
再看设计模式——观察者模式
查看>>
JavaWeb学习-1
查看>>