Gradle:如何在外部脚本的buildscript块中配置存储库



在外部脚本common/buildversion.gradle中,我有:

buildscript {
    // Copy repositories definitions from this buildscript to all projects
    (allprojects*.repositories + [repositories]).each {
        it.configure {
           apply from: rootProject.file('../../common/repositories.gradle')
        }
    }
    dependencies { classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:1.2" }
}
apply plugin: org.sonarqube.gradle.SonarQubePlugin

在常用/存储库中。渐变:

repositories{
    maven { url "https://plugins.gradle.org/m2/" }
}

我收到错误:

无法解析外部依赖项sonarqube gradle插件,因为没有存储库定义

这里有一种为存储库定义提供单一来源的方法。

  1. 将存储库声明为"ext"变量

    // repositories.gradle
    ext.repos = {
        maven {
            name "repo1"
            url "repo1_url"
        }
        maven {
            name "repo2"
            url "repo2_url"
        }
    }
    
  2. 在你的建筑中"应用".gradle

    // build.gradle
    apply from: "${project.projectDir}/repositories.gradle"
    
  3. 在存储库声明中使用变量

    // build.gradle
    repositories repos
    
不支持将buildScript块的部分外部化为其他脚本。有一个公开的缺陷,你应该对此进行投票。

最新更新