为什么gradle android插件不会为intellij idea模块生成依赖项

时间:2013-11-06 14:59:31

标签: android maven intellij-idea dependencies gradle

我有4个子项目的gradle项目,我正在使用idea插件来生成构思项目和模块。 其中一个子项目是android模块。

这是build.gradle代码:

buildscript {

    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.6'
    }
}

apply plugin: 'android'

android {

    buildToolsVersion "18.1.1"
    compileSdkVersion 16

    sourceSets {

        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aild.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        instrumentTest.setRoot('tests')
    }
}

repositories {
    mavenCentral()
}

dependencies {
    compile(
            ['org.atmosphere:wasync:1.1.0'],
            ['org.codehaus.jackson:jackson-mapper-lgpl:1.9.13'],
            ['org.projectlombok:lombok:0.+'],
            ['org.apache.httpcomponents:httpmime:4.3.1'],
            ['commons-io:commons-io:2.+'],
            ['com.google.guava:guava:14.+']
    )
    compile fileTree(dir: 'libs', include: '*.jar')
}

问题是:当使用“gradle idea”生成intellij idea模块时,导致android模块缺少依赖项,我无法弄清楚原因。 我的配置有问题吗?

其他子项目(使用java插件)在构思模块中导入依赖项没有问题。

我正在使用gradle 1.7。

2 个答案:

答案 0 :(得分:3)

在Idea中导入gradle项目解决了Android模块没有导入依赖项的问题,但是在这个问题中描述了一堆更多(和更糟)的问题: IntelliJ, Android and Gradle

答案 1 :(得分:0)

Idea插件可以处理java插件的compile配置,但不能处理android插件(现在)。但这可以手动解决,将其放在android {}apply plugin:块附近:

beforeEvaluate {
    idea.module.scopes.put("COMPILE", ["plus": [], "minus": []])
    idea.module.scopes.COMPILE.plus += configurations.compile
    idea.module.sourceDirs += file('src')
}

第一行与idea插件的内部细节有关,第二行实际上是在compile闭包内的dependencies配置下声明的依赖关系。第三个与问题无关,但将src文件夹添加到Idea的来源。