我可以在GradleBuild任务中同时使用dir和buildFile吗?

时间:2014-06-23 15:17:28

标签: gradle

我正在尝试使用不同的builg.gradle文件从子目录调用gradle任务。 我有以下任务:

task(subTask, type: GradleBuild) {
    dir = new File(project.projectDir, "db/" + project.dbName)
    buildFile = new File(project.projectDir, "build.gradle.subdir")
    tasks = [params,...]
    startParameter.projectProperties = [env: project.env]
}

我可以传递'dir'或'buildFile',但是当我传递两者时,那么projectDir将是传递的'buildFile'所在的目录,而不是我作为'dir'传递的目录,我希望它们位于2个不同的目录中,如上面的任务所示。知道如何做到这一点?

更新: 所以我有以下文件:

的build.gradle build.gradle.subdir DB / DBA / 分贝/ DBA / gradle.properties DB / DBB / 分贝/ DBB / gradle.properties

因为目前有一些历史性的事情,我们会做以下事情: cp build.gradle.subdir db / dbA / build.gradle cd db / dbA ../gradlew任务......

我需要为db

下的每个子目录执行此操作

所以我认为我可能至少要做一步(虽然仍然是hacky)并且不需要外部shell脚本来对目录进行循环,而副本就是cd。

我快到了: 我能够手动复制build.gradle.subdir,然后上面的任务(不传递buildFile)工作 要么 我可以传递buildFile,但不能传递dir,在这种情况下它会开始运行任务,但它不会读取db / dirA / gradle.properties,这是执行任务所必需的。

1 个答案:

答案 0 :(得分:0)

项目目录必须与包含构建脚本和gradle.properties文件的目录相同。您必须找到解决问题的不同方法。