6

我有 4 个子项目的 gradle 项目,我正在使用想法插件来生成想法项目和模块。其中一个子项目是 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插件)在idea模块中导入了依赖项,没有问题。

我正在使用 gradle 1.7。

4

2 回答 2

3

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

于 2014-02-07T16:53:46.720 回答
0

Idea插件可以处理compilejava插件的配置,但不能处理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 的来源。

于 2014-02-04T15:14:21.633 回答