diff options
author | 2016-08-29 14:05:26 +0000 | |
---|---|---|
committer | 2016-08-29 15:37:25 +0000 | |
commit | 559033aba335aaabd568e3d4ca335eed5ed8f32b (patch) | |
tree | 9472bda06cc30ccb8da3f98a86c6d78c242177bb /src | |
parent | 8e8d4446d17ce6422c2ee15c15be3387b7fb6b1a (diff) |
Avoid building android R class ijar / header jar
It is already ignored and the real jar used as
the compileTime jar in AndroidCommon. It's only
used by the ide-resolve output group. The real
jar is pretty close to the header jar in terms
of content (field inits deleted).
Tradeoff: The real jar is ~33% bigger (w/ same
compression level), vs save build time and space
by skipping the hjar actions and artifacts.
At android_binary level, the hjar action can take
~40 seconds in some cases. At the library level,
the hjar time is pretty tiny.
hjars are not compressed. We could compress the
real jars to make up for the extra 30% size
(and beat the hjar size), but that adds ~25%
elapsed time to do the compression (e.g.,
10s vs 7.5s). Compression can shrink the jar
2-3x (37MB vs 100MB).
--
MOS_MIGRATED_REVID=131588283
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java | 6 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java | 11 |
2 files changed, 5 insertions, 12 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java index 8748ed3dee..f8473ea15d 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java @@ -136,7 +136,6 @@ public class AndroidCommon { private Artifact genClassJar; private Artifact genSourceJar; private Artifact resourceClassJar; - private Artifact resourceIJar; private Artifact resourceSourceJar; private Artifact outputDepsProto; @@ -436,7 +435,6 @@ public class AndroidCommon { javaArtifactsBuilder); } javacHelper.createSourceJarAction(resourceSourceJar, null); - resourceIJar = javacHelper.createCompileTimeJarAction(resourceClassJar, javaArtifactsBuilder); } private void createJarJarActions( @@ -701,8 +699,8 @@ public class AndroidCommon { .addOutputJar(classJar, iJar, srcJar) .setJdeps(outputDepsProto); OutputJar resourceJar = null; - if (resourceClassJar != null && resourceIJar != null && resourceSourceJar != null) { - resourceJar = new OutputJar(resourceClassJar, resourceIJar, resourceSourceJar); + if (resourceClassJar != null && resourceSourceJar != null) { + resourceJar = new OutputJar(resourceClassJar, null, resourceSourceJar); outputJarsBuilder.addOutputJar(resourceJar); } diff --git a/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java b/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java index 4f59705365..d06352e17b 100644 --- a/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java +++ b/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java @@ -616,7 +616,7 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase jarString("com/google/example", "libl.jar", "libl-ijar.jar", "libl-src.jar"), jarString("com/google/example", - "l_resources.jar", "l_resources-ijar.jar", "l_resources-src.jar")); + "l_resources.jar", null, "l_resources-src.jar")); assertThat( transform( ruleInfo.getAndroidRuleIdeInfo().getResourcesList(), ARTIFACT_TO_RELATIVE_PATH)) @@ -626,7 +626,7 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase assertThat(ruleInfo.getAndroidRuleIdeInfo().getJavaPackage()).isEqualTo("com.google.example"); assertThat(LIBRARY_ARTIFACT_TO_STRING.apply(ruleInfo.getAndroidRuleIdeInfo().getResourceJar())) .isEqualTo(jarString("com/google/example", - "l_resources.jar", "l_resources-ijar.jar", "l_resources-src.jar" + "l_resources.jar", null, "l_resources-src.jar" )); assertThat(ruleInfo.getDependenciesList()).contains("//com/google/example:l1"); @@ -635,12 +635,10 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase "com/google/example/libl-ijar.jar", "com/google/example/libl-src.jar", "com/google/example/l_resources.jar", - "com/google/example/l_resources-ijar.jar", "com/google/example/l_resources-src.jar", "com/google/example/libl1.jar", "com/google/example/libl1-src.jar", "com/google/example/l1_resources.jar", - "com/google/example/l1_resources-ijar.jar", "com/google/example/l1_resources-src.jar"); assertThat(ruleInfo.getJavaRuleIdeInfo().getJdeps().getRelativePath()) .isEqualTo("com/google/example/libl.jdeps"); @@ -677,7 +675,7 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase jarString("com/google/example", "libb.jar", "libb-ijar.jar", "libb-src.jar"), jarString("com/google/example", - "b_resources.jar", "b_resources-ijar.jar", "b_resources-src.jar")); + "b_resources.jar", null, "b_resources-src.jar")); assertThat( transform( @@ -697,12 +695,10 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase "com/google/example/libb-ijar.jar", "com/google/example/libb-src.jar", "com/google/example/b_resources.jar", - "com/google/example/b_resources-ijar.jar", "com/google/example/b_resources-src.jar", "com/google/example/libl1.jar", "com/google/example/libl1-src.jar", "com/google/example/l1_resources.jar", - "com/google/example/l1_resources-ijar.jar", "com/google/example/l1_resources-src.jar"); assertThat(ruleInfo.getJavaRuleIdeInfo().getJdeps().getRelativePath()) .isEqualTo("com/google/example/libb.jdeps"); @@ -792,7 +788,6 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase "com/google/example/liblib.jar", "com/google/example/liblib-src.jar", "com/google/example/lib_resources.jar", - "com/google/example/lib_resources-ijar.jar", "com/google/example/lib_resources-src.jar", "com/google/example/AndroidManifest.xml"); } |