2016-04-27 33 views
3

在外部腳本通用/ buildversion.gradle我:搖籃:我如何可以配置在外部腳本的buildscript塊庫

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/" } 
} 

我獲取錯誤:

Cannot resolve external dependency sonarqube-gradle-plugin because no repositories are defined.

回答

0

不支持將buildScript塊的部分外部化爲其他腳本。有一個open defect,你應該對它投票。

+0

存儲庫定義_必須位於單獨的文件中。 – isobretatel

+0

對不起,錯過了。我相信你現在所要​​求的是不可能的。更新答案。 – RaGe

+0

實際上有一種方法可以做到這一點。請參閱我的回答:https://stackoverflow.com/a/45401790/1860089 – Amnon

1

這裏有一個方法來爲存儲庫定義提供單一來源。

  1. 聲明庫作爲 「外部」 變量庫聲明

    // repositories.gradle 
    
    ext.repos = { 
        maven { 
         name "repo1" 
         url "repo1_url" 
        } 
        maven { 
         name "repo2" 
         url "repo2_url" 
        } 
    } 
    
  2. 「應用」 在你的build.gradle

    // build.gradle 
    apply from: "${project.projectDir}/repositories.gradle" 
    
  3. 使用可變

    // build.gradle 
    repositories repos