首页 > 解决方案 > gradle 仅在指定的子项目上构建

问题描述

我有一个包含 4 个模块的 Gradle Java 项目,在我的 CI/CD 流程中,我清理并构建了./gradlew clean build在所有 4 个模块上运行这些任务的项目。但我实际上只需要在其中 3 个上运行它们。所以问题是,我怎样才能创建一个任务,只清理和构建我需要的模块?

我到了这一点:

allprojects.findAll { it.name in ['module1', 'module2', 'module3'] }. each { p ->
    configure(p) {
        println p.name
    }
}

但我不知道如何走得更远,即使我的方向是否正确..

标签: gradlebuild.gradlegradlew

解决方案


怎么样:

allprojects.findAll { it.name in ['module1', 'module2', 'module3'] }. each { p ->
    configure(p) {
        task customTask {
            dependsOn 'clean'
            dependsOn 'build'
            tasks.findByName('build').mustRunAfter 'clean'
        }
    }
}

而不是dependsOn您可能对GradleBuild感兴趣。我没有正确配置它,这就是我使用dependsOn.

相关帖子


推荐阅读