代码之家  ›  专栏  ›  技术社区  ›  Dean Hiller

让所有gradle子项目“测试”任务依赖于根项目“设置”任务

  •  2
  • Dean Hiller  · 技术社区  · 7 年前

    What is the syntax for a gradle subproject task depending on a parent project's task?

    我在根级别上有以下任务(即子项目闭包之外和所有项目闭包以外)。

    task deleteJavaCache {
        doLast {
            System.out.println("DELETE java caches here to prevent intermitten build failures from java deleting files")
        }
    }
    
    test.dependsOn rootProject.deleteJavaCache
    test{
       beforeTest{ descr ->
        logger.warn("Starting Test ${descr.className} : ${descr.name}")
       }
    ...
    

    我得到的错误是

    A problem occurred evaluating root project 'webpieces'.
    > Could not get unknown property 'deleteJavaCache' for root project 
    'webpieces' of type org.gradle.api.Project.
    

    然后我猜了几件事,包括这件事

    test.dependsOn rootProject.task('deleteJavaCache')
    

    但这给了我一个错误

    * What went wrong:
    A problem occurred evaluating root project 'webpieces'.
    > Cannot add task ':deleteJavaCache' as a task with that name already exists.
    

    因此,版本信息是

    ------------------------------------------------------------
    Gradle 4.1-milestone-1
    ------------------------------------------------------------
    Build time:   2017-06-20 17:05:46 UTC
    Revision:     3ad5af92d482b963cc6b00fb5ad53b608606d657
    
    Groovy:       2.4.11
    Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
    JVM:          1.8.0_111 (Oracle Corporation 25.111-b14)
    OS:           Mac OS X 10.11.6 x86_64
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   LazerBanana    7 年前

    仔细检查您的 settings.gradle include 那里


    如果我理解正确,它是这样的:

    root (deleteJavaCache)
      |- subprojects (test.dependsOn deleteJavaCache from the root)
    

    试试这个:

    test.dependsOn (":deleteJavaCache")
    

    test 之前要运行的任务:

    //in root build.gradle
    subprojects {
        test.dependsOn (":deleteJavaCache")
    }
    

    测验 任务使其依赖于根项目的任务?

    我在根级别有以下任务

    deleteJavaCache 测验

    test.dependsOn deleteJavaCache