Skip to content

Commit 89791b2

Browse files
committed
added custom guava module and removing the dependency to the whole library
1 parent 529ad4d commit 89791b2

File tree

7 files changed

+67
-5
lines changed

7 files changed

+67
-5
lines changed

todoapp/app/build.gradle

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,13 @@ android {
5353
*/
5454
dependencies {
5555
// App's dependencies, including test
56+
compile fileTree(dir: project(':guava_custom').file('libs/'), include: ['*.jar'])
57+
5658
compile "com.android.support:appcompat-v7:$rootProject.supportLibraryVersion"
5759
compile "com.android.support:cardview-v7:$rootProject.supportLibraryVersion"
5860
compile "com.android.support:design:$rootProject.supportLibraryVersion"
5961
compile "com.android.support:recyclerview-v7:$rootProject.supportLibraryVersion"
6062
compile "com.android.support:support-v4:$rootProject.supportLibraryVersion"
61-
compile "com.google.guava:guava:$rootProject.guavaVersion"
6263
compile "com.android.support.test.espresso:espresso-idling-resource:$rootProject.espressoVersion"
6364

6465
// Dependencies for local unit tests

todoapp/build.gradle

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ buildscript {
33
jcenter()
44
}
55
dependencies {
6-
classpath 'com.android.tools.build:gradle:2.1.0-alpha4'
6+
classpath 'com.android.tools.build:gradle:2.1.0-alpha5'
77

88
// NOTE: Do not place your application dependencies here; they belong
99
// in the individual module build.gradle files
@@ -30,12 +30,11 @@ ext {
3030

3131
// App dependencies
3232
supportLibraryVersion = '23.1.1'
33-
guavaVersion = '18.0'
3433
junitVersion = '4.12'
3534
mockitoVersion = '1.10.19'
3635
powerMockito = '1.6.2'
3736
hamcrestVersion = '1.3'
3837
runnerVersion = '0.4.1'
3938
rulesVersion = '0.4.1'
4039
espressoVersion = '2.2.1'
41-
}
40+
}

todoapp/guava_custom/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/build

todoapp/guava_custom/build.gradle

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
apply plugin: 'java'
2+
buildscript {
3+
repositories {
4+
mavenCentral()
5+
}
6+
dependencies {
7+
classpath 'net.sf.proguard:proguard-gradle:5.2.1'
8+
}
9+
}
10+
11+
configurations {
12+
injar
13+
libjar
14+
}
15+
16+
String getClassesJar(String platform) {
17+
def javaHome = System.properties.'java.home'
18+
switch (platform.replaceAll(' ', '').toLowerCase()) {
19+
case ~/.*osx.*/:
20+
return "$javaHome/../Classes/classes.jar"
21+
case ~/.*linux.*/:
22+
case ~/.*darwin.*/:
23+
case ~/.*win.*/:
24+
return "$javaHome/lib/rt.jar"
25+
default: throw new GradleException('unable to determine java runtime classes!')
26+
}
27+
}
28+
29+
def guavaVersion = '18.0'
30+
def classesJar = files(getClassesJar(System.properties['os.name']))
31+
32+
//noinspection GradleImproperProjectLevelStatement
33+
dependencies {
34+
injar "com.google.guava:guava:${guavaVersion}"
35+
libjar 'com.google.code.findbugs:jsr305:3.0.0'
36+
libjar classesJar
37+
}
38+
39+
/**
40+
* Run proguard to shrink guava to only include the stuff we specify and its dependencies.
41+
*/
42+
task createCustomGuava(type: proguard.gradle.ProGuardTask) {
43+
injars configurations.injar.files
44+
libraryjars configurations.libjar.files
45+
outjars file("libs/guava_${guavaVersion}_base.jar")
46+
dontoptimize
47+
dontobfuscate
48+
keep '''public class com.google.common.base.** {
49+
public *;
50+
}'''
51+
keep '''public class com.google.common.collect.** {
52+
public *;
53+
}'''
54+
keep '''public class com.google.common.reflect.** {
55+
public *;
56+
}'''
57+
}
1.3 MB
Binary file not shown.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package com.example;
2+
3+
public class MyClass {
4+
}

todoapp/settings.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
include ':app'
1+
include ':app', ':guava_custom'

0 commit comments

Comments
 (0)