Gradle:防止执行根项目

时间:2015-06-06 07:01:06

标签: gradle build build-process

我有一个扁平的多项目配置,如下所示:

projA
projB
projC
build_scripts

build_scripts包含build.gradle

build.gradle看起来像这样:

allprojects {
    ...
    task gitPull(type: Exec) {
        description 'Pulls git.'
        commandLine "git", "pull"
    }
}
project(':projA') {
...
}
project(':projB') {
...
}
project(':projC') {
...
}

当我从gradle gitPull目录运行build_scripts时,我想要 gradle在git pullprojAprojB(以及其他任何地方)的目录中执行projC

但是,由于gralde将build_scripts视为根项目,它也会在那里执行git pull - 这会失败,因为它不是git存储库(或者即使它是,我也不想在构建项目时对其执行git pull

通常,我不希望build_scripts文件夹(即根项目)参与任何与构建相关的活动。 如何排除allProjects

中指定的任务对根项目执行的操作

1 个答案:

答案 0 :(得分:2)

来自php docs

在此示例中,您可以看到tropicalFish如何过滤项目hello执行任务 ....

  

例56.8。向某些项目添加自定义行为(按以下方式过滤   项目名称)

include 'bluewhale', 'krill','tropicalFish' 
  

注意:可以在此处找到此示例的代码   样品/用户指南/多项目/ addTropical / water in'-all'   Gradle的分布。

Settings.gradle

allprojects {
    task hello << {task -> println "I'm $task.project.name" }
}
subprojects {
    hello << {println "- I depend on water"}
}
configure(subprojects.findAll {it.name != 'tropicalFish'}) {
    hello << {println '- I love to spend time in the arctic waters.'}
}

的build.gradle

06-06 14:00:03.670: E/AndroidRuntime(29671): java.lang.IllegalStateException: Could not execute method of the activity
06-06 14:00:03.670: E/AndroidRuntime(29671): Caused by: java.lang.UnsatisfiedLinkError: Native method not found: org.cocos2dx.cpp.AppActivity.onFinished:(I)V