aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaInfoBuildHelper.java10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfoBuildHelper.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfoBuildHelper.java
index 0037212924..e5c2cde4a3 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfoBuildHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfoBuildHelper.java
@@ -483,7 +483,13 @@ final class JavaInfoBuildHelper {
JavaRuleOutputJarsProvider.Builder outputJarsBuilder = JavaRuleOutputJarsProvider.builder();
- Artifact outputSourceJar = getSourceJar(skylarkRuleContext.getRuleContext(), outputJar);
+ boolean generateMergedSourceJar =
+ (sourceJars.size() > 1 || !sourceFiles.isEmpty())
+ || (sourceJars.isEmpty() && sourceFiles.isEmpty() && !exports.isEmpty());
+ Artifact outputSourceJar =
+ generateMergedSourceJar
+ ? getSourceJar(skylarkRuleContext.getRuleContext(), outputJar)
+ : sourceJars.get(0);
JavaInfo.Builder javaInfoBuilder = JavaInfo.Builder.create();
JavaCompilationArtifacts artifacts =
@@ -493,7 +499,7 @@ final class JavaInfoBuildHelper {
javaRuntimeInfo,
SkylarkList.createImmutable(ImmutableList.of()),
outputJarsBuilder,
- /*createOutputSourceJar=*/ true,
+ /*createOutputSourceJar*/ generateMergedSourceJar,
outputSourceJar,
javaInfoBuilder);