【问题标题】:Why gradle android plugin doesn't generate dependencies for intellij idea module为什么gradle android插件不会为intellij idea模块生成依赖项
【发布时间】:2013-11-17 21:15:48
【问题描述】:

我有 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。

【问题讨论】:

    标签: android maven intellij-idea dependencies gradle


    【解决方案1】:

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

    【讨论】:

    • 另外,似乎当子项目之一是android gradle项目时,IDEA将整个项目视为android项目(它在项目根目录中查找local.properties,将AndroidGradle方面广告到所有模块)
    【解决方案2】:

    Idea 插件可以处理 compile java 插件的配置,但不能处理 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插件的内部细节有关,第二行实际上是在dependencies闭包内添加了compile配置下声明的依赖项。第三个与问题无关,但将 src 文件夹添加到 Idea 的来源。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-30
      • 1970-01-01
      相关资源
      最近更新 更多