У меня есть 2 скрипта gradle.build, один для моего приложения и один для моего теста. Приложение имеет зависимость от ActionBarSherlock следующим образом:Actionbar Шерлок не найден в тестовом скрипте сборки
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
Я попытался добавить ту же зависимость компиляции в тестовой сборке, а также пытаюсь зависеть от переходных зависимостей приложения. Но в этом случае я получаю ошибку не найденную. Вот сценарий всей тестовой сборки:
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"]
Спасибо. Я вернусь к созданию ABS из источника. –