Skip to content

Commit 65ec607

Browse files
committed
Organize build logic.
1 parent d80a9d7 commit 65ec607

File tree

8 files changed

+130
-70
lines changed

8 files changed

+130
-70
lines changed

build.gradle

+7-10
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
apply from: 'buildsrc/dependencies.gradle'
2+
13
buildscript {
24
repositories {
35
jcenter()
@@ -8,21 +10,16 @@ buildscript {
810
}
911
}
1012

13+
task wrapper(type: Wrapper) {
14+
description 'Creates the gradle wrapper.'
15+
gradleVersion '2.2.1'
16+
}
17+
1118
allprojects {
1219
ext {
13-
androidBuildToolsVersion = "21.1.2"
14-
androidMinSdkVersion = 15
15-
androidTargetSdkVersion = 21
16-
androidCompileSdkVersion = 21
1720
androidApplicationId = 'com.fernandocejas.android10.sample.presentation'
1821
androidVersionCode = 1
1922
androidVersionName = "1.0"
2023
testInstrumentationRunner = "android.support.test.runner.AndroidJUnitRunner"
2124
}
22-
repositories {
23-
jcenter()
24-
maven {
25-
url "https://oss.sonatype.org/content/repositories/snapshots"
26-
}
27-
}
2825
}

buildsrc/dependencies.gradle

+74
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
allprojects {
2+
repositories {
3+
jcenter()
4+
maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
5+
}
6+
}
7+
8+
ext {
9+
//Android
10+
androidBuildToolsVersion = "21.1.2"
11+
androidMinSdkVersion = 15
12+
androidTargetSdkVersion = 21
13+
androidCompileSdkVersion = 21
14+
15+
//Libraries
16+
daggerVersion = '2.0-SNAPSHOT'
17+
butterKnifeVersion = '6.0.0'
18+
recyclerViewVersion = '21.0.3'
19+
rxJavaVersion = '1.0.3'
20+
rxAndroidVersion = '0.23.0'
21+
javaxAnnotationVersion = '10.0-b28'
22+
gsonVersion = '2.3'
23+
24+
//Testing
25+
robolectricVersion = '2.4'
26+
jUnitVersion = '4.11'
27+
mockitoVersion = '1.9.5'
28+
dexmakerVersion = '1.0'
29+
espressoVersion = '2.0'
30+
testingSupportLibVersion = '0.1'
31+
32+
33+
presentationDependencies = [
34+
daggerCompiler: "com.google.dagger:dagger-compiler:${daggerVersion}",
35+
dagger: "com.google.dagger:dagger:${daggerVersion}",
36+
butterKnife: "com.jakewharton:butterknife:${butterKnifeVersion}",
37+
recyclerView: "com.android.support:recyclerview-v7:${recyclerViewVersion}",
38+
rxJava: "io.reactivex:rxjava:${rxJavaVersion}",
39+
rxAndroid: "io.reactivex:rxandroid:${rxAndroidVersion}",
40+
javaxAnnotation: "org.glassfish:javax.annotation:${javaxAnnotationVersion}",
41+
]
42+
43+
presentationTestDependencies = [
44+
mockito: "org.mockito:mockito-core:${mockitoVersion}",
45+
dexmaker: "com.google.dexmaker:dexmaker:${dexmakerVersion}",
46+
dexmakerMockito: "com.google.dexmaker:dexmaker-mockito:${dexmakerVersion}",
47+
espresso: "com.android.support.test.espresso:espresso-core:${espressoVersion}",
48+
testingSupportLib: "com.android.support.test:testing-support-lib:${testingSupportLibVersion}",
49+
]
50+
51+
domainDependencies = [
52+
rxJava: "io.reactivex:rxjava:${rxJavaVersion}",
53+
]
54+
55+
domainTestDependencies = [
56+
junit: "junit:junit:${jUnitVersion}",
57+
mockito: "org.mockito:mockito-core:${mockitoVersion}",
58+
]
59+
60+
dataDependencies = [
61+
daggerCompiler: "com.google.dagger:dagger-compiler:${daggerVersion}",
62+
dagger: "com.google.dagger:dagger:${daggerVersion}",
63+
gson: "com.google.code.gson:gson:${gsonVersion}",
64+
rxJava: "io.reactivex:rxjava:${rxJavaVersion}",
65+
rxAndroid: "io.reactivex:rxandroid:${rxAndroidVersion}",
66+
javaxAnnotation: "org.glassfish:javax.annotation:${javaxAnnotationVersion}",
67+
]
68+
69+
dataTestDependencies = [
70+
junit: "junit:junit:${jUnitVersion}",
71+
mockito: "org.mockito:mockito-core:${mockitoVersion}",
72+
robolectric: "org.robolectric:robolectric:${robolectricVersion}",
73+
]
74+
}

data-test/build.gradle

+4-3
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,10 @@ dependencies {
1515
//noinspection GroovyAssignabilityCheck
1616
testCompile files(dataLayer.android.bootClasspath)
1717

18-
testCompile 'org.mockito:mockito-core:1.9.5'
19-
testCompile 'junit:junit:4.11'
20-
testCompile 'org.robolectric:robolectric:2.4'
18+
def dataTestDependencies = rootProject.ext.dataTestDependencies
19+
testCompile dataTestDependencies.junit
20+
testCompile dataTestDependencies.mockito
21+
testCompile dataTestDependencies.robolectric
2122
}
2223

2324
sourceSets {

data/build.gradle

+10-12
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,14 @@ android {
3434
}
3535

3636
dependencies {
37-
def domainLayer = project(':domain')
38-
39-
//project dependencies
40-
compile domainLayer
41-
42-
//library dependencies
43-
apt "com.google.dagger:dagger-compiler:2.0-SNAPSHOT"
44-
provided 'org.glassfish:javax.annotation:10.0-b28'
45-
compile 'com.google.dagger:dagger:2.0-SNAPSHOT'
46-
compile('com.google.code.gson:gson:2.3')
47-
compile 'io.reactivex:rxjava:1.0.3'
48-
compile 'io.reactivex:rxandroid:0.23.0'
37+
def dataDependencies = rootProject.ext.dataDependencies
38+
39+
compile project(':domain')
40+
41+
apt dataDependencies.daggerCompiler
42+
compile dataDependencies.dagger
43+
compile dataDependencies.gson
44+
compile dataDependencies.rxJava
45+
compile dataDependencies.rxAndroid
46+
provided dataDependencies.javaxAnnotation
4947
}

domain/build.gradle

+6-5
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@ sourceCompatibility = 1.7
44
targetCompatibility = 1.7
55

66
dependencies {
7-
//library dependencies
8-
compile 'io.reactivex:rxjava:1.0.3'
7+
def domainDependencies = rootProject.ext.domainDependencies
8+
def domainTestDependencies = rootProject.ext.domainTestDependencies
99

10-
//test dependencies
11-
testCompile 'junit:junit:4.11'
12-
testCompile 'org.mockito:mockito-core:1.9.5'
10+
compile domainDependencies.rxJava
11+
12+
testCompile domainTestDependencies.junit
13+
testCompile domainTestDependencies.mockito
1314
}

gradle.properties

+5-18
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,5 @@
1-
# Project-wide Gradle settings.
2-
3-
# IDE (e.g. Android Studio) users:
4-
# Settings specified in this file will override any Gradle settings
5-
# configured through the IDE.
6-
7-
# For more details on how to configure your build environment visit
8-
# http://www.gradle.org/docs/current/userguide/build_environment.html
9-
10-
# Specifies the JVM arguments used for the daemon process.
11-
# The setting is particularly useful for tweaking memory settings.
12-
# Default value: -Xmx10248m -XX:MaxPermSize=256m
13-
# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
14-
15-
# When configured, Gradle will run in incubating parallel mode.
16-
# This option should only be used with decoupled projects. More details, visit
17-
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18-
# org.gradle.parallel=true
1+
#Gradle configuration
2+
org.gradle.daemon=true
3+
org.gradle.jvmargs=-Dfile.encoding=UTF-8
4+
org.gradle.parallel=true
5+
org.gradle.configureondemand=true

presentation/build.gradle

+20-21
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ android {
1010
defaultConfig {
1111
minSdkVersion globalConfiguration.getAt("androidMinSdkVersion")
1212
targetSdkVersion globalConfiguration.getAt("androidTargetSdkVersion")
13+
1314
applicationId globalConfiguration.getAt("androidApplicationId")
1415
versionCode globalConfiguration.getAt("androidVersionCode")
1516
versionName globalConfiguration.getAt("androidVersionName")
@@ -39,25 +40,23 @@ android {
3940
}
4041

4142
dependencies {
42-
def domainLayer = project(':domain')
43-
def dataLayer = project(':data')
44-
45-
compile domainLayer
46-
compile dataLayer
47-
48-
apt "com.google.dagger:dagger-compiler:2.0-SNAPSHOT"
49-
50-
provided 'org.glassfish:javax.annotation:10.0-b28'
51-
52-
compile 'com.google.dagger:dagger:2.0-SNAPSHOT'
53-
compile 'com.jakewharton:butterknife:6.0.0'
54-
compile 'com.android.support:recyclerview-v7:21.0.3'
55-
compile 'io.reactivex:rxjava:1.0.3'
56-
compile 'io.reactivex:rxandroid:0.23.0'
57-
58-
androidTestCompile 'org.mockito:mockito-core:1.9.5'
59-
androidTestCompile 'com.google.dexmaker:dexmaker:1.0'
60-
androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.0'
61-
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.0'
62-
androidTestCompile 'com.android.support.test:testing-support-lib:0.1'
43+
def presentationDependencies = rootProject.ext.presentationDependencies
44+
def presentationTestDependencies = rootProject.ext.presentationTestDependencies
45+
46+
compile project(':domain')
47+
compile project(':data')
48+
49+
apt presentationDependencies.daggerCompiler
50+
compile presentationDependencies.dagger
51+
compile presentationDependencies.butterKnife
52+
compile presentationDependencies.recyclerView
53+
compile presentationDependencies.rxJava
54+
compile presentationDependencies.rxAndroid
55+
provided presentationDependencies.javaxAnnotation
56+
57+
androidTestCompile presentationTestDependencies.mockito
58+
androidTestCompile presentationTestDependencies.dexmaker
59+
androidTestCompile presentationTestDependencies.dexmakerMockito
60+
androidTestCompile presentationTestDependencies.espresso
61+
androidTestCompile presentationTestDependencies.testingSupportLib
6362
}

settings.gradle

+4-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
1-
include ':presentation', ':domain', ':data', ':data-test'
1+
include ':presentation'
2+
include ':domain'
3+
include ':data'
4+
include ':data-test'

0 commit comments

Comments
 (0)