Gradle Android,从其他模块中排除依赖关系

时间:2015-02-05 08:24:15

标签: android unit-testing gradle android-gradle build.gradle

我有一个Android应用,我想进行单元测试。通过MVP模式,我能够在" android世界之外提取很多课程。为了在单独的模块[1]内测试它们作为普通单元测试(使用Junit)。 但是,我想从这些类中记录一些消息。所以我尝试将slf4j-api android 绑定一起使用。打算在我的测试中提供简单绑定。 但是" 测试"模块开始抱怨在类路径中有两个slf4j绑定,并且他正在使用android-binding。

所以我的问题是,如何从" 测试"中排除slf4j-android依赖项?模块? 以下是我的" 测试"的 build.gradle 模块

evaluationDependsOn(":app")

apply plugin: 'java'

dependencies {
    def app = project(':app')

    testCompile project(path: ':app', configuration: 'debugCompile')

    def debugVariant = app.android.applicationVariants.find({it.name == 'debug'})
    testCompile debugVariant.javaCompile.classpath
    testCompile debugVariant.javaCompile.outputs.files
    testCompile files(app.plugins.findPlugin("com.android.application").getBootClasspath())

    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    testCompile 'org.powermock:powermock-api-mockito:1.6.1'
    testCompile 'org.assertj:assertj-core:1.7.1'

}

[1] http://blog.blundell-apps.com/how-to-run-robolectric-junit-tests-in-android-studio/

1 个答案:

答案 0 :(得分:0)

使用“exclude”属性删除依赖库。如下所示:

testCompile'junit:junit:4.12'{     排除'slf4j-android' }

我不确定您需要从哪个库中排除它。要找到答案,请使用gradle列出库依赖项。

gradle依赖