aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java7
2 files changed, 14 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java
index 7da5b33810..e2768b27ff 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java
@@ -720,7 +720,13 @@ public class JavaCommon {
activePlugins,
getDependencies(JavaGenJarsProvider.class));
- builder.addProvider(JavaGenJarsProvider.class, genJarsProvider);
+ NestedSetBuilder<Artifact> genJarsBuilder = NestedSetBuilder.stableOrder();
+ genJarsBuilder.addTransitive(genJarsProvider.getTransitiveGenClassJars());
+ genJarsBuilder.addTransitive(genJarsProvider.getTransitiveGenSourceJars());
+
+ builder
+ .addProvider(JavaGenJarsProvider.class, genJarsProvider)
+ .addOutputGroup(JavaSemantics.GENERATED_JARS_OUTPUT_GROUP, genJarsBuilder.build());
javaInfoBuilder.addProvider(JavaGenJarsProvider.class, genJarsProvider);
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java
index 2d5e1c76f1..292e5d37ee 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java
@@ -132,6 +132,13 @@ public interface JavaSemantics {
String SOURCE_JARS_OUTPUT_GROUP =
OutputGroupInfo.HIDDEN_OUTPUT_GROUP_PREFIX + "source_jars";
+ /**
+ * Name of the output group used for gen jars (the jars containing the class files for sources
+ * generated from annotation processors).
+ */
+ String GENERATED_JARS_OUTPUT_GROUP =
+ OutputGroupInfo.HIDDEN_OUTPUT_GROUP_PREFIX + "gen_jars";
+
/** Implementation for the :jvm attribute. */
static LabelLateBoundDefault<JavaConfiguration> jvmAttribute(RuleDefinitionEnvironment env) {
return LabelLateBoundDefault.fromTargetConfiguration(