使用gradle

时间:2017-06-08 16:21:12

标签: android unit-testing android-studio gradle android-gradle

我有一个创建库的gradle文件:它包含一些外部java代码,这些代码也在其他java平台中使用,其中包含一些单元测试代码(位于./../java-common/src-java/)。我想在创建发布库时排除单元测试包,并在创建调试版本或androidTest(或测试)版本时保留该代码。

但是,如果我指定在发布版本中排除单元测试包,则对其他构建类型执行相同的操作。这是我的build.gradle:

apply plugin: 'com.android.library'
apply plugin: 'maven-publish'
apply plugin: 'com.jfrog.bintray'

// This is required to be able to create the javadocs when using java 8
if (JavaVersion.current().isJava8Compatible()) {
    allprojects {
        tasks.withType(Javadoc) {
            options.addStringOption('Xdoclint:none', '-quiet')
        }
    }
}

android {
    defaultPublishConfig 'release'
    publishNonDefault true
    testBuildType "debug"

    compileSdkVersion 22
    buildToolsVersion "24.0.3"

    lintOptions {
        abortOnError false
    }

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    buildTypes {

        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            sourceSets {
                main {
                    java {
                        exclude '**/com/mycompany/util/unittest/**'
                    }
                }
            }
        }
        debug {
            minifyEnabled false
            debuggable true
        }
    }

    sourceSets {
        main.java.srcDirs += '../../java-common/src-java/'
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'org.mockito:mockito-core:1.9.5'
    androidTestCompile 'junit:junit:4.12'
    androidTestCompile 'com.android.support.test:runner:0.4'
    androidTestCompile 'com.android.support.test:rules:0.4'
    androidTestCompile 'com.google.android.gms:play-services-ads:9.2.1'
    androidTestCompile 'com.google.android.gms:play-services-base:9.2.1'
    androidTestCompile fileTree(include: ['*.jar'], dir: 'libs-unittest')
}

...

如果我运行此配置,则在没有com/mycompany/util/unittest的情况下创建发布版本,但是当我尝试运行调试版本或androidTest(单元测试)时,版本不包含所需的com / mycompany / util / unittest包

有人能帮助我吗?

谢谢!

0 个答案:

没有答案