Add java_library outputs to validation outputs

This ensures that compilation actions are performed for libraries that are only used as neverlink dependencies, to ensure that any compilation errors are reported.

The minimize the number of additional validation actions, the validation is done for targets that set neverlink, and their transitive runtime dependencies, so anything that is used as a transitive neverlink dep is covered.

PiperOrigin-RevId: 735509081
Change-Id: I76b30e68c8b37eca165861e893ec595cb3040d6c
diff --git a/java/common/rules/impl/basic_java_library_impl.bzl b/java/common/rules/impl/basic_java_library_impl.bzl
index a43b451..cf7c5c1 100644
--- a/java/common/rules/impl/basic_java_library_impl.bzl
+++ b/java/common/rules/impl/basic_java_library_impl.bzl
@@ -156,6 +156,8 @@
         _direct_source_jars = java_info.source_jars,
     )
 
+    validation_outputs = []
+
     if ctx.fragments.java.run_android_lint:
         generated_source_jars = [
             output.generated_source_jar
@@ -168,7 +170,13 @@
             compilation_info,
         )
         if lint_output:
-            output_groups["_validation"] = [lint_output]
+            validation_outputs.append(depset([lint_output]))
+
+    if neverlink:
+        validation_outputs.append(java_info.compilation_info.runtime_classpath)
+
+    if validation_outputs:
+        output_groups["_validation"] = depset(transitive = validation_outputs)
 
     target["InstrumentedFilesInfo"] = coverage_common.instrumented_files_info(
         ctx,
diff --git a/java/common/rules/impl/java_binary_impl.bzl b/java/common/rules/impl/java_binary_impl.bzl
index 9311430..a5a14d0 100644
--- a/java/common/rules/impl/java_binary_impl.bzl
+++ b/java/common/rules/impl/java_binary_impl.bzl
@@ -251,7 +251,10 @@
     ])
 
     if validation_outputs:
-        output_groups["_validation"] = output_groups.get("_validation", []) + validation_outputs
+        output_groups["_validation"] = depset(
+            validation_outputs,
+            transitive = [output_groups.get("_validation", depset([]))],
+        )
 
     _filter_validation_output_group(ctx, output_groups)