我有一个创建库的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包
有人能帮助我吗?
谢谢!