2016-01-09 82 views
0

我有以下问题:有项目有自己的buildscript部分:摇篮:包括与buildscript作为子项目项目

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" 
    } 
} 

当我把它作为一个子项目到另外一个(也具有类似buildscript节)我得到以下错误:因为我需要得到2种情景工作

* What went wrong: A problem occurred evaluating project ':blablabla'. 
> Cannot change dependencies of configuration ':blablabla:classpath' after it has been resolved. 

这buildscript是必须对他们俩的:

  1. 当他们两个都可以独立建造时
  2. blablabla被视为第一个子项目。

所以,问题是我如何重写(或禁用)包含项目的buildscript部分?

编辑

我有如下配置:

// mainProject's build.gradle 

buildscript { 
    repositories { 
     mavenCentral() 
    } 

    dependencies { 
     classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" 
    } 
} 

plugins { 
    id 'org.jetbrains.intellij' version "0.0.36" 
} 

// Some other irrelevant stuff 

blablabla小号build.gradle

// subProject's build.gradle 

buildscript { 
    repositories { 
     mavenCentral() 
    } 

    dependencies { 
     classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" 
    } 
} 

plugins { 
    id 'org.jetbrains.intellij' version "0.0.36" 
} 

// Some other irrelevant stuff 

而且settings.gradle

// settings.gradle 

include ":subProject" 
+0

怎么样你包括project2作为project1的子项目? – RaGe

+0

正确:在'settings.gradle'里面我做:'include:blablabla' – alexeykudinkin

+0

请问你能否提供一个重现问题的例子? – Opal

回答

0

周围挖了一段时间终于找到合理的解决办法:你可以简单地切断buildscript部分在子项目只有条件检查当前的项目是否被调用为根之一:

if (project == rootProject) { 
    buildscript { 
    // ... 
    } 
}