最近在打包发布的时候遇到了一个问题,项目中有很多资源是在工程目录外的,而且好几个工程都用这一份资源。
在build.gradle中我用sourceSet指定了资源目录,然后再代码中用classLoder.getresource获取文件内容。
然后就产生了问题,因为我写代码和发布不在一个环境,发布要在linux上,那我不想每次都修改build文件,怎么才能在gradle.build的时候或者在build文件中使用变量呢。
apply plugin: 'java'
sourceSets {
main {
java{
srcDir "src"
}
resources {
srcDir 'resource'
srcDir'D:/demo/server/resource/xml'
srcDir 'D:/demo/server/resource/sensitive'
}
}
}
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}
dependencies {
compile fileTree(dir: '../resource/libs', include: '*.jar')
}
build{
doLast {
copy {
from('build/libs') {
include('*.jar')
}
into('../../release/bin')
}
}
}
不想改配置文件你还可以用环境变量啊。gradle使用
groovy DSL
做配置文件,因此你完全可以写groovy代码实现。如果你倾向使用
System property
覆盖默认配置,可以用gradle的properties配置默认参数,并且在gradle命令行上使用-PGRADLE_PROPERTY=newValue
覆盖。比如:gradle.properties:
build.gradle:
使用
gradle(w) -PmyProperty=newValue tasks
覆盖。这种用法详见: https://docs.gradle.org/curre...