129 lines
4.7 KiB
Groovy
129 lines
4.7 KiB
Groovy
/*
|
|
* Copyright (C) 2020 The Dagger Authors.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
import org.gradle.util.VersionNumber
|
|
|
|
apply plugin: 'com.android.application'
|
|
apply plugin: 'dagger.hilt.android.plugin'
|
|
|
|
// Gets additional test directories to be added to test and androidTest source
|
|
// sets. If the directory name is appended with '-agp-x.x.x' then the directory
|
|
// is conditionally added based on the AGP version of the project.
|
|
def getAdditionalTestDirs(String variant) {
|
|
def testDirs = [
|
|
'androidTest': [],
|
|
'sharedTest': ['src/sharedTest/java'],
|
|
'test': []
|
|
]
|
|
def suffix = '-agp-'
|
|
def agpVersion = VersionNumber.parse(agp_version)
|
|
file("${getProjectDir().absolutePath}/src").eachFile { file ->
|
|
int indexOf = file.name.indexOf(suffix)
|
|
if (file.isDirectory() && indexOf != -1) {
|
|
def dirAgpVersion =
|
|
VersionNumber.parse(file.name.substring(indexOf + suffix.length()))
|
|
if (agpVersion >= dirAgpVersion) {
|
|
testDirs[file.name.substring(0, indexOf)].add("src/${file.name}/java")
|
|
}
|
|
}
|
|
}
|
|
return testDirs[variant] + testDirs['sharedTest']
|
|
}
|
|
|
|
android {
|
|
compileSdkVersion 30
|
|
buildToolsVersion "30.0.2"
|
|
|
|
defaultConfig {
|
|
applicationId "dagger.hilt.android.simple"
|
|
minSdkVersion 15
|
|
targetSdkVersion 30
|
|
versionCode 1
|
|
versionName "1.0"
|
|
testInstrumentationRunner "dagger.hilt.android.simple.SimpleEmulatorTestRunner"
|
|
}
|
|
compileOptions {
|
|
sourceCompatibility 1.8
|
|
targetCompatibility 1.8
|
|
}
|
|
testOptions {
|
|
unitTests.includeAndroidResources = true
|
|
}
|
|
lintOptions {
|
|
checkReleaseBuilds = false
|
|
}
|
|
sourceSets {
|
|
test {
|
|
java.srcDirs += getAdditionalTestDirs("test")
|
|
}
|
|
androidTest {
|
|
java.srcDirs += getAdditionalTestDirs("androidTest")
|
|
}
|
|
}
|
|
}
|
|
|
|
hilt {
|
|
enableTransformForLocalTests = true
|
|
enableAggregatingTask = true
|
|
}
|
|
|
|
configurations.all {
|
|
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
|
|
if ("$dagger_version" == 'LOCAL-SNAPSHOT'
|
|
&& details.requested.group == 'com.google.dagger') {
|
|
details.useVersion 'LOCAL-SNAPSHOT'
|
|
details.because 'LOCAL-SNAPSHOT should act as latest version.'
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
implementation project(':feature')
|
|
implementation project(':lib')
|
|
implementation 'androidx.appcompat:appcompat:1.2.0'
|
|
implementation "com.google.dagger:hilt-android:$dagger_version"
|
|
annotationProcessor "com.google.dagger:hilt-compiler:$dagger_version"
|
|
|
|
testImplementation 'com.google.truth:truth:1.0.1'
|
|
testImplementation 'junit:junit:4.13'
|
|
testImplementation 'org.robolectric:robolectric:4.5-alpha-3'
|
|
testImplementation 'androidx.core:core:1.3.2'
|
|
testImplementation 'androidx.test.ext:junit:1.1.2'
|
|
testImplementation 'androidx.test:runner:1.3.0'
|
|
testImplementation 'androidx.test.espresso:espresso-core:3.3.0'
|
|
testImplementation "com.google.dagger:hilt-android-testing:$dagger_version"
|
|
testAnnotationProcessor "com.google.dagger:hilt-compiler:$dagger_version"
|
|
|
|
androidTestImplementation 'com.google.truth:truth:1.0.1'
|
|
androidTestImplementation 'junit:junit:4.13'
|
|
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
|
|
androidTestImplementation 'androidx.test:runner:1.3.0'
|
|
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
|
|
androidTestImplementation "com.google.dagger:hilt-android-testing:$dagger_version"
|
|
androidTestAnnotationProcessor "com.google.dagger:hilt-compiler:$dagger_version"
|
|
|
|
// To help us catch usages of Guava APIs for Java 8 in the '-jre' variant.
|
|
annotationProcessor'com.google.guava:guava:28.1-android'
|
|
testAnnotationProcessor'com.google.guava:guava:28.1-android'
|
|
androidTestAnnotationProcessor'com.google.guava:guava:28.1-android'
|
|
|
|
// To help us catch version skew related issues in hilt extensions.
|
|
// TODO(bcorso): Add examples testing the actual API.
|
|
implementation 'androidx.hilt:hilt-work:1.0.0'
|
|
annotationProcessor 'androidx.hilt:hilt-compiler:1.0.0'
|
|
testAnnotationProcessor 'androidx.hilt:hilt-compiler:1.0.0'
|
|
androidTestAnnotationProcessor 'androidx.hilt:hilt-compiler:1.0.0'
|
|
}
|