u6f*_*f6o 2 gradle source-sets
我想知道是否可以使用gradle动态创建源集.我当前项目的目录层次结构如下所示:
每个模块文件夹(foo和bar)都应分配自己的源集.原因是我想动态创建dbFitTestFoo和dbFitTestBar等任务.我目前的方法如下:
ext.dbFitModulesDir = "dbfit-junit/module"
ext.dbFitTestSpecs = ["java", "groovy", "scala", "resources"]
ext.dbFitModules = []
file(dbFitModulesDir).eachDir{ module ->
dbFitModules << module.name
}
/** this needs to be done dynamically for each "module" **/
sourceSets {
integrationTest { sourceSet ->
dbFitModules.each{ module ->
dbFitTestSpecs.each { spec ->
if (!sourceSet.hasProperty(spec)) {
return
}
sourceSet."$spec".srcDir file("$dbFitModulesDir/$module/$spec")
}
}
}
}
dbFitModules.each{ module ->
task "dbFitTest${module.capitalize()}"(type: Test) {
group = "Verification"
description = "Run dbFit tests for $module"
doLast {
testClassesDir = sourceSets.integrationTest.output.classesDir
classpath = sourceSets.integrationTest.runtimeClasspath
}
}
}
Run Code Online (Sandbox Code Playgroud)
任务的创建工作顺利,唯一仍然缺少的是动态创建和分配源集.
谢谢你的任何提示!
是的,您可以动态创建源集.这是一个例子:
dbFitModules.each { module ->
sourceSets.create("${module}Test") {
...
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1235 次 |
| 最近记录: |