前置条件
这里的例子继续使用上一篇的类,你可以如果你懒得看上一篇,那就把上一篇的MyTag 类复制一份就可以了
class MyTag {
String prefix;
String postfix;
MyTag(String prefix, String postfix) {
this.prefix = prefix
this.postfix = postfix
}
@Override
String toString() {
return "$prefix--$postfix"
}
}
定义文件 mytag.properities, 写两个配置
prefix=heng
postfix=ha
定义初始化阶段 + 配置阶段
// 读取并赋值
ext.myTagFile = file('mytag.properies')
ext {
myNewTag = readMyTag()
}
MyTag readMyTag() {
logger.quiet("read my tag form file!")
if (!myTagFile.exists()) {
throw new GradleException("mytag.properies not found!")
}
Properties properties = new Properties()
myTagFile.withInputStream {
stream -> properties.load(stream)
}
return new MyTag(properties.prefix.toString(), properties.postfix.toString())
}
执行阶段
task loadMyTag {
println "$project.ext.myNewTag"
}
执行task
//gradlew -q loadMyTag
heng--ha
要注意的地方
这个例子使用了ext 来定义自己的变量, 如果使用project本来提供的变量,那自己调整以下便可,比如project.version
网友评论