diff options
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/java/JavaInfoBuildHelper.java | 10 |
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); |