有没有一种方法可以重用initscript中的自定义init.gradle?块中的外部属性

def REPO_URL = 'myRepoUrl'

initscript {
    repositories {
        maven {
            url REPO_URL
        }
    }
    dependencies {
        classpath 'some dependency'
    }
}

这给了我未知的属性错误。我也曾尝试像这样使用ext {}
ext {
    REPO_URL = 'myRepoUrl'
}

同样的错误。但是它仍然可以在我到目前为止尝试过的所有其他配置块中使用,即使在init.gradle内部也是如此。这迫使我重复initscript块和其余配置的属性。

经过更多的检查,它似乎完全失去了对周围范围的任何引用。从Groovy的 Angular 来看,我什至不明白为什么它会这样表现。

最佳答案

我认为问题出在母鸡身上。

要执行初始化脚本,您需要在initscript块中声明的依赖项。但是您尝试使用仅在执行初始化脚本期间存在的内容。

所以我想说您想要的是不可能的。您必须在initscript块内和外部至少声明两次。因此,您可能获得的最佳效果是:

def REPO_URL = 'myRepoUrl'

initscript {
    def REPO_URL = 'myRepoUrl'
    repositories {
        maven {
            url REPO_URL
        }
    }
    dependencies {
        classpath 'some dependency'
    }
}

09-04 11:12