1 Star 0 Fork 0

Gerry_Jie / GradleJavaTest

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
test.gradle 2.01 KB
一键复制 编辑 原始数据 按行查看 历史
liangchaojie 提交于 2020-05-14 18:52 . success
def targetFile = new File("./app/src/main/java/com/smartconfig/Config.java")
def targetFile2 = new File("./app/src/main/assets/test.txt")
def targetFile3 = new File("./gradle.properties")
if (targetFile2.exists()) {
def bytes = targetFile2.getBytes()
def original = new String(bytes)
if(!original.contains("data=")||!original.contains("pageName=")||!original.contains("isUseGson=")){
throw new RuntimeException("src/main/assets/test.txt文件错失必要的参数!请仔细检查")
}
//防止json数据里面存在isUseGson=true这样的字段干扰我们的判断
def result = original.substring(0,original.indexOf("data="))
if (result.contains("isUseGson=true")) {
isUseGson = true
}
if (result.contains("isUseGson=false")) {
isUseGson = false
}
}
//该接口返回的是文件内容对应的byte[]
def bytes = targetFile.getBytes()
//与上述接口对应,还可以直接使用targetFile.bytes这个属性获取文件内容
def original = new String(bytes)
def useGson = "package com.smartconfig;\n" +
"\n" +
"import com.google.gson.Gson;\n" +
"\n" +
"public class Config {\n" +
" public Object build() {\n" +
" return new Gson();\n" +
" }\n" +
"}"
def noUseGson = "package com.smartconfig;\n" +
"\n" +
"import com.google.gson.Gson;\n" +
"\n" +
"public class Config {\n" +
" public Object build() {\n" +
" // return new Gson();\n" +
" return null;\n" +
" }\n" +
"}"
//修改Config.java类之前判断Config.java是不是最新的代码,如果不是最新的代码就要爆出异常~
if (original != useGson && original != noUseGson) {
throw new RuntimeException("Config.javay类已经被修改过,需要更新才能编译!请找梁超杰")
}
//这里获取的实际是Java中的BufferedOutputStream
targetFile.withOutputStream { osm ->
osm.write((isUseGson.toBoolean() ? useGson : noUseGson).getBytes())
}
1
https://gitee.com/LosingCarryJie/GradleJavaTest.git
git@gitee.com:LosingCarryJie/GradleJavaTest.git
LosingCarryJie
GradleJavaTest
GradleJavaTest
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891