我有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。
答案 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的来源。