代码之家  ›  专栏  ›  技术社区  ›  JvmSd121

Gradle多项目,顶部的ext{}失败了?

  •  3
  • JvmSd121  · 技术社区  · 6 年前

    我搞不懂为什么ext{}的顺序很重要,并导致如下失败?如果没有一个可复制的例子,你们是如何计算放置东西的顺序的?文档似乎只是孤立地讨论闭包,而不是它们之间的相互依赖?

    project-base
        settings.gradle
        build.gradle (inside this one in examples below)
      subproject_folder
        build.gradle
    
    
    ext {} // this blows up here
    
     buildscript {}
    
     plugins {}
    
     sonarqube {} 
    
     allprojects {}
    
     subprojects {}
    

    但是如果我有同样的东西除了

    buildscript {}
    
    plugins {}
    
    sonarqube {}
    
    allprojects {}
    
    subprojects {}
    
    ext {} // bingo all of a sudden this is legal ?
    
    1 回复  |  直到 6 年前
        1
  •  3
  •   Louis Jacomet    6 年前

    问题不在于 ext {} 布洛克,这是 buildscript {} plugins {} 阻碍。

    如所示 documentation , the 插件{} 块必须是生成文件中的第一个。 因为 构建脚本{} 块还涉及确定生成文件中可访问的内容,其类路径有效,具有类似的限制。