gradle 替换java类_Gradle字符串替换

在Gralde中我们可以很方便的替换Manifest中的字符串:

manifestPlaceholders = [UMENG_CHANNEL_VALUE: "myapp"]

但是,这种方式不适用于其他文件。

举个栗子,首先要有个测试文件,Test.java:

public class Test {

public static final String Str = "${TEST_KEY}";

}

然后build.gradle中添加函数和task:

def static replaceText(File file, String key, String value) {

def fileText = file.text

def regex = '\\$\\{' + key + '\\}'

fileText = (fileText =~ /${regex}/).replaceAll(value)

file.write(fileText)

}

task doSth {

doLast {

File file = new File("${projectDir}/Test.java")

replaceText(file, 'TEST_KEY', 'this is test value')

}

}

执行task doSth:

$ ./gradlew -q doSth

最后Test.java的${TEST_KEY}就被替换了:

public class Test {

public static final String Str = "this is test value";

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值