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

时间:2016-04-27 17:35:55

标签: gradle

在外部脚本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.gradle:

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

我收到错误:

  

无法解决外部依赖关系   sonarqube-gradle-plugin因为没有存储库   定义

2 个答案:

答案 0 :(得分:1)

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

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

    // repositories.gradle
    
    ext.repos = {
        maven {
            name "repo1"
            url "repo1_url"
        }
        maven {
            name "repo2"
            url "repo2_url"
        }
    }
    
  2. 在build.gradle中使用“apply”

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

    // build.gradle
    repositories repos
    

答案 1 :(得分:0)

不支持将buildScript块的部分外部化到其他脚本中。有一个open defect,你应该投票。