2014-06-11 24 views
1

我有2个gradle.build脚本,一个用于我的应用程序,另一个用于我的测试。该应用程序依赖于actionbarsherlock如下:在测试构建脚本中找不到操作栏Sherlock

dependencies { 

    compile project(':shared-jars') 

    compile ('com.actionbarsherlock:actionbarsherlock:[email protected]') { 
     exclude module: 'support-v4' 
    } 
} 

assembleRelease工作正常。

但是,当进行构建时,测试版本无法编译,因为它找不到actionbarsherlock。例如:

14:27:52.847 [INFO] [org.gradle.api.internal.tasks.compile.jdk6.Jdk6JavaCompiler] Compiling with JDK Java compiler API. 
14:27:54.240 [ERROR] [system.err] /Users/bradrhoads/Documents/src/estante/src/android/src/main/java/org/maf/estante/Discover.java:13: package com.actionbarsherlock.app does not exist 

我尝试添加在测试版本相同的编译依赖以及试图依赖于应用程序的传递依赖。但是在eather的情况下,我得到了未找到的错误。以下是整个测试脚本:

def props = new Properties() 
file("../local.properties").withInputStream { 
    stream -> props.load(stream) 
} 

repositories { 
    mavenCentral() 
    maven { 
     url new File(props['sdk.dir'] + "/extras/android/m2repository/").toURI() 
    } 
} 

apply plugin: 'groovy' 


dependencies { 
    compile "org.codehaus.groovy:groovy-all:1.8.6" 
    compile 'org.robospock:robospock:0.4.4' 

    compile 'cglib:cglib-nodep:3.1' 

    compile 'com.jakewharton:butterknife:4.0.1' 


    //compile fileTree(dir: ':android:libs', include: '*.jar') 
    compile project(":shared-jars") 

    compile ('com.actionbarsherlock:actionbarsherlock:[email protected]') { 
     exclude module: 'support-v4' 
    } 

    compile (project(":estanteApp")) { 
     transitive = true 
    } 


} 

sourceSets.test.java.srcDirs = ['../android/src/main/java', '../android/build/source/r/debug'] 

test { 

    systemProperty 'ro.build.date.utc', '1' 
    systemProperty 'ro.kernel.qemu', '0' 

    beforeTest { descriptor -> 
     logger.lifecycle("Running test: " + descriptor) 
    } 

    testLogging { 
     lifecycle { 
      exceptionFormat "full" 
     } 
    } 

    workingDir = '../android/src/main' 

} 


tasks["test"].dependsOn project(":estanteApp").tasks["compileDebugJava"] 

回答

2

Groovy插件不理解aar依赖关系。目前只有android *插件可以评估这种依赖关系。

您可以尝试首先组装Android项目并链接到build/exploded-aar/com.actionbarsherlock/actionbarsherlock/4.4.0/classes.jar,但我不确定robolectric如何使用aar库中的资源。

+0

谢谢。我会回到从源头上构建ABS。 –