Gradle Multiproject,顶部的ext {}失败了吗?

时间:2019-01-28 22:39:39

标签: gradle

我不知道为什么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 个答案:

答案 0 :(得分:3)

问题不是ext {}块的位置,而是buildscript {}plugins {}块的位置。

documentation所示,plugins {}块必须是构建文件中的第一个。 而且,由于buildscript {}块还与确定构建文件中可访问的内容有关,因此它的类路径有效,它具有类似的局限性。