【问题标题】:Add depencency to group of gradle tasks将依赖项添加到 gradle 任务组
【发布时间】:2015-10-12 03:33:26
【问题描述】:

我有一个包含大量发布任务的项目:

Publishing tasks
----------------
generatePomFileForMavenJavaPublication - Generates the Maven POM file for publication 'mavenJava'.
generatePomFileForMavenPublication - Generates the Maven POM file for publication 'maven'.
publish - Publishes all publications produced by this project.
publishMavenJavaPublicationToMavenLocal - Publishes Maven publication 'mavenJava' to the local Maven repository.
publishMavenJavaPublicationToMavenRepository - Publishes Maven publication 'mavenJava' to Maven repository 'maven'.
publishMavenPublicationToMavenLocal - Publishes Maven publication 'maven' to the local Maven repository.
publishMavenPublicationToMavenRepository - Publishes Maven publication 'maven' to Maven repository 'maven'.
publishToMavenLocal - Publishes all Maven publications produced by this project to the local Maven cache.

现在我希望所有这些任务都依赖于build,以确保在发布任何内容之前运行测试和检查(默认情况下,发布任务依赖于assemble)。

以下当然有效:

publish.dependsOn(build)
publishToMavenLocal.dependsOn(build)

但是维护起来很麻烦,并且不适用于像publishMavenPublicationToMavenRepository这样的任何生成的任务。 有没有办法为所有发布任务添加依赖项?我当然试过publishing.dependsOn(build),但它只是说:

Could not find method dependsOn() for arguments [task ':build'] on org.gradle.api.publish.internal.DefaultPublishingExtension_Decorated@5b5f8cd6.

【问题讨论】:

    标签: gradle build-process build.gradle


    【解决方案1】:

    无法定义 group 依赖项,但是您可以尝试:

    tasks.findAll { it.name.startsWith('publish') }*.dependsOn(DA_TASK)
    

    【讨论】:

    • 嗯,这实际上是我正在寻找的,谢谢!我以前在某个地方读过它,但忘记了 findAll 函数。顺便说一句,我提到的publishMavenPublicationToMavenRepository 之类的任务并未包含在 findAll 中。显然它们是稍后生成的或类似的东西。不知道有没有人知道为什么?
    • 某些任务在配置期间不存在,仅在后期阶段。尝试运行project.afterEvaluate { //HERE }的答案中的代码,所有任务都应该存在。
    猜你喜欢
    • 2018-03-02
    • 2014-03-30
    • 2015-07-08
    • 1970-01-01
    • 2020-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多