diff --git a/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/DepsCheckerClassVisitor.java b/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/DepsCheckerClassVisitor.java
index b536a39..8fadf10 100644
--- a/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/DepsCheckerClassVisitor.java
+++ b/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/DepsCheckerClassVisitor.java
@@ -107,7 +107,7 @@
       }
       MemberInfo member = MemberInfo.create(name, desc);
       if (!classInfo.get().containsMember(member)) {
-        resultCollector.addMissingMember(owner, member);
+        resultCollector.addMissingMember(classInfo.get(), member);
       }
     } catch (RuntimeException e) {
       System.err.printf(
diff --git a/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/ImportDepsChecker.java b/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/ImportDepsChecker.java
index 7e837a8..fe1a80a 100644
--- a/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/ImportDepsChecker.java
+++ b/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/ImportDepsChecker.java
@@ -13,9 +13,9 @@
 // limitations under the License.
 package com.google.devtools.build.importdeps;
 
-
 import com.google.common.collect.HashMultimap;
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
 import com.google.devtools.build.importdeps.AbstractClassEntryState.IncompleteState;
 import com.google.devtools.build.importdeps.ResultCollector.MissingMember;
 import com.google.devtools.build.lib.view.proto.Deps.Dependencies;
@@ -28,9 +28,14 @@
 import java.io.UncheckedIOException;
 import java.nio.file.Path;
 import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
 import java.util.Map;
 import java.util.Objects;
+import java.util.function.Function;
+import java.util.jar.Attributes;
 import java.util.jar.JarFile;
+import java.util.jar.Manifest;
+import java.util.stream.Stream;
 import java.util.zip.ZipFile;
 import javax.annotation.Nullable;
 import org.objectweb.asm.ClassReader;
@@ -44,6 +49,8 @@
   private final ClassCache classCache;
   private final ResultCollector resultCollector;
   private final ImmutableList<Path> inputJars;
+  private final ImmutableMap<Path, String> pathToTargetMap;
+  private final Function<ClassInfo, String> classInfoLabelFunc;
 
   public ImportDepsChecker(
       ImmutableList<Path> bootclasspath,
@@ -54,6 +61,23 @@
     this.classCache = new ClassCache(bootclasspath, directClasspath, classpath, inputJars);
     this.resultCollector = new ResultCollector();
     this.inputJars = inputJars;
+    this.pathToTargetMap = buildPathToTargetMap(bootclasspath, classpath, inputJars);
+    this.classInfoLabelFunc =
+        klass -> {
+          String klassName = klass.internalName().replace('/', '.');
+          String targetName = pathToTargetMap.get(klass.jarPath());
+          if (targetName != null) {
+            int index = targetName.lastIndexOf('/');
+            if (index >= 0) {
+              // Just print the target name without the full path, as the Bazel tests have
+              // different full paths of targets.
+              targetName = targetName.substring(index + 1);
+            }
+            return klassName + " (in " + targetName + ")";
+          } else {
+            return klassName;
+          }
+        };
   }
 
   /**
@@ -171,17 +195,37 @@
 
   private void outputMissingMembers(
       StringBuilder builder, ImmutableList<MissingMember> missingMembers) {
+    LinkedHashSet<ClassInfo> classesWithMissingMembers = new LinkedHashSet<>();
     for (MissingMember missing : missingMembers) {
       builder
           .append("Missing member '")
           .append(missing.memberName())
           .append("' in class ")
-          .append(missing.owner().replace('/', '.'))
+          .append(missing.owner().internalName().replace('/', '.'))
           .append(" : name=")
           .append(missing.memberName())
           .append(", descriptor=")
           .append(missing.descriptor())
           .append('\n');
+      classesWithMissingMembers.add(missing.owner());
+    }
+    if (!classesWithMissingMembers.isEmpty()) {
+      builder.append("The class hierarchies of the classes with missing members:").append("\n");
+      classesWithMissingMembers.forEach(
+          missingClass -> printClassHierarchy(missingClass, builder, classInfoLabelFunc, "    "));
+    }
+  }
+
+  private static void printClassHierarchy(
+      ClassInfo klass,
+      StringBuilder builder,
+      Function<ClassInfo, String> labelFunction,
+      String indent) {
+    builder.append(indent).append(labelFunction.apply(klass)).append('\n');
+    String superIndent = indent + "    ";
+
+    for (ClassInfo superClass : klass.superClasses()) {
+      printClassHierarchy(superClass, builder, labelFunction, superIndent);
     }
   }
 
@@ -213,7 +257,7 @@
                       reference -> {
                         builder
                             .append(INDENT)
-                            .append(reference.internalName().replace('/', '.'))
+                            .append(classInfoLabelFunc.apply(reference))
                             .append('\n');
                       });
             });
@@ -225,9 +269,24 @@
     }
   }
 
-  private static ImmutableList<String> extractLabels(ImmutableList<Path> jars) {
+  private static ImmutableMap<Path, String> buildPathToTargetMap(ImmutableList<Path>... pathList) {
+    ImmutableMap.Builder<Path, String> labels = ImmutableMap.builder();
+    Stream.of(pathList)
+        .flatMap(ImmutableList::stream)
+        .distinct()
+        .forEach(
+            path -> {
+              String label = extractLabel(path);
+              if (label != null) {
+                labels.put(path, label);
+              }
+            });
+    return labels.build();
+  }
+
+  private ImmutableList<String> extractLabels(ImmutableList<Path> jars) {
     return jars.parallelStream()
-        .map(ImportDepsChecker::extractLabel)
+        .map(pathToTargetMap::get)
         .filter(Objects::nonNull)
         .distinct()
         .sorted()
@@ -237,7 +296,15 @@
   @Nullable
   private static String extractLabel(Path jarPath) {
     try (JarFile jar = new JarFile(jarPath.toFile())) {
-      return jar.getManifest().getMainAttributes().getValue("Target-Label");
+      Manifest manifest = jar.getManifest();
+      if (manifest == null) {
+        return null;
+      }
+      Attributes attributes = manifest.getMainAttributes();
+      if (attributes == null) {
+        return null;
+      }
+      return attributes.getValue("Target-Label");
     } catch (IOException e) {
       throw new UncheckedIOException(e);
     }
diff --git a/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/ResultCollector.java b/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/ResultCollector.java
index 7a1fe39..fdcfde3 100644
--- a/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/ResultCollector.java
+++ b/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/ResultCollector.java
@@ -65,7 +65,7 @@
         && indirectDeps.isEmpty();
   }
 
-  public void addMissingMember(String owner, MemberInfo member) {
+  public void addMissingMember(ClassInfo owner, MemberInfo member) {
     missingMembers.add(MissingMember.create(owner, member));
   }
 
@@ -97,15 +97,15 @@
   @AutoValue
   public abstract static class MissingMember implements Comparable<MissingMember> {
 
-    public static MissingMember create(String owner, String memberName, String descriptor) {
+    public static MissingMember create(ClassInfo owner, String memberName, String descriptor) {
       return create(owner, MemberInfo.create(memberName, descriptor));
     }
 
-    public static MissingMember create(String owner, MemberInfo member) {
+    public static MissingMember create(ClassInfo owner, MemberInfo member) {
       return new AutoValue_ResultCollector_MissingMember(owner, member);
     }
 
-    public abstract String owner();
+    public abstract ClassInfo owner();
 
     public abstract MemberInfo member();
 
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/DepsCheckerClassVisitorTest.java b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/DepsCheckerClassVisitorTest.java
index fcffb98..196a072 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/DepsCheckerClassVisitorTest.java
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/DepsCheckerClassVisitorTest.java
@@ -78,21 +78,26 @@
             libraryExceptionJar,
             clientJar);
     assertThat(collector.getSortedMissingClassInternalNames()).isEmpty();
-    assertThat(collector.getSortedMissingMembers())
+    assertThat(
+            collector
+                .getSortedMissingMembers()
+                .stream()
+                .map(DepsCheckerClassVisitorTest::constructFullQualifiedMemberName)
+                .collect(ImmutableList.toImmutableList()))
         .containsExactly(
-            MissingMember.create(
+            constructFullyQualifiedMemberName(
                 "com/google/devtools/build/importdeps/testdata/Library$Class1",
                 "I",
                 "Lcom/google/devtools/build/importdeps/testdata/Library$Class1;"),
-            MissingMember.create(
+            constructFullyQualifiedMemberName(
                 "com/google/devtools/build/importdeps/testdata/Library$Class3",
                 "field",
                 "Lcom/google/devtools/build/importdeps/testdata/Library$Class4;"),
-            MissingMember.create(
+            constructFullyQualifiedMemberName(
                 "com/google/devtools/build/importdeps/testdata/Library$Class4",
                 "createClass5",
                 "()Lcom/google/devtools/build/importdeps/testdata/Library$Class5;"),
-            MissingMember.create(
+            constructFullyQualifiedMemberName(
                 "com/google/devtools/build/importdeps/testdata/Library$Class5",
                 "create",
                 "(Lcom/google/devtools/build/importdeps/testdata/Library$Class7;)"
@@ -100,6 +105,16 @@
         .inOrder();
   }
 
+  private static String constructFullQualifiedMemberName(MissingMember member) {
+    return constructFullyQualifiedMemberName(
+        member.owner().internalName(), member.memberName(), member.descriptor());
+  }
+
+  private static String constructFullyQualifiedMemberName(
+      String owner, String memberName, String descriptor) {
+    return owner + memberName + descriptor;
+  }
+
   private ImmutableList<String> getMissingClassesInClient(Path... classpath) throws IOException {
     ResultCollector resultCollector = getResultCollector(classpath);
     return resultCollector.getSortedMissingClassInternalNames();
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/ResultCollectorTest.java b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/ResultCollectorTest.java
index 6256c77..2d9d389 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/ResultCollectorTest.java
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/ResultCollectorTest.java
@@ -63,9 +63,9 @@
     assertThat(collector.getSortedMissingClassInternalNames()).containsExactly("java.lang.String");
     assertThat(collector.getSortedMissingMembers()).isEmpty();
 
-    collector.addMissingMember("java/lang/Object", MemberInfo.create("field", "I"));
+    collector.addMissingMember(objectClass, MemberInfo.create("field", "I"));
     assertThat(collector.getSortedMissingMembers())
-        .containsExactly(MissingMember.create("java/lang/Object", "field", "I"));
+        .containsExactly(MissingMember.create(objectClass, "field", "I"));
     assertThat(collector.getSortedMissingClassInternalNames()).containsExactly("java.lang.String");
     assertThat(collector.isEmpty()).isFalse();
   }
@@ -115,27 +115,40 @@
     String owner = "owner";
     String name = "name";
     String desc = "desc";
-    MissingMember member = MissingMember.create(owner, name, desc);
-    assertThat(member.owner()).isEqualTo(owner);
+    MissingMember member =
+        MissingMember.create(
+            ClassInfo.create(owner, Paths.get("."), false, ImmutableList.of(), ImmutableSet.of()),
+            name,
+            desc);
+    assertThat(member.owner())
+        .isEqualTo(
+            ClassInfo.create(owner, Paths.get("."), false, ImmutableList.of(), ImmutableSet.of()));
     assertThat(member.memberName()).isEqualTo(name);
     assertThat(member.descriptor()).isEqualTo(desc);
     assertThat(member.member()).isEqualTo(MemberInfo.create(name, desc));
 
-    MissingMember member2 = MissingMember.create(owner, MemberInfo.create(name, desc));
+    MissingMember member2 =
+        MissingMember.create(
+            ClassInfo.create(owner, Paths.get("."), false, ImmutableList.of(), ImmutableSet.of()),
+            MemberInfo.create(name, desc));
     assertThat(member2).isEqualTo(member);
   }
 
   @Test
   public void testMemberComparison() {
-    MissingMember member1 = MissingMember.create("A", MemberInfo.create("B", "C"));
-    MissingMember member2 = MissingMember.create("A", MemberInfo.create("B", "C"));
+    ClassInfo classA =
+        ClassInfo.create("A", Paths.get(""), false, ImmutableList.of(), ImmutableSet.of());
+    MissingMember member1 = MissingMember.create(classA, MemberInfo.create("B", "C"));
+    MissingMember member2 = MissingMember.create(classA, MemberInfo.create("B", "C"));
     assertThat(member1.compareTo(member2)).isEqualTo(0);
 
-    MissingMember member3 = MissingMember.create("B", MemberInfo.create("B", "C"));
+    ClassInfo classB =
+        ClassInfo.create("B", Paths.get(""), false, ImmutableList.of(), ImmutableSet.of());
+    MissingMember member3 = MissingMember.create(classB, MemberInfo.create("B", "C"));
     assertThat(member1.compareTo(member3)).isEqualTo(-1);
     assertThat(member3.compareTo(member1)).isEqualTo(1);
 
-    MissingMember member4 = MissingMember.create("A", MemberInfo.create("C", "C"));
+    MissingMember member4 = MissingMember.create(classA, MemberInfo.create("C", "C"));
     assertThat(member1.compareTo(member4)).isEqualTo(-1);
 
     assertThat(member3.compareTo(member4)).isEqualTo(1);
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.stderr.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.stderr.txt
index e7470b5..1666883 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.stderr.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.stderr.txt
@@ -22,47 +22,49 @@
 Missing java.lang.invoke.MethodType
 Missing java.util.Objects
 Indirectly missing class java.lang.Enum. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Client$EnumTest
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationFlag
+    com.google.devtools.build.importdeps.testdata.Client$EnumTest (in testdata:testdata_client)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationFlag (in testdata:testdata_lib_LibraryAnnotations)
 Indirectly missing class java.lang.Exception. Referenced by:
-    com.google.devtools.build.importdeps.testdata.LibraryException
+    com.google.devtools.build.importdeps.testdata.LibraryException (in testdata:testdata_lib_LibraryException)
 Indirectly missing class java.lang.Object. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Client$InnerClassWithSyntheticConstructorParam
-    com.google.devtools.build.importdeps.testdata.Library
-    com.google.devtools.build.importdeps.testdata.Library$Class1
-    com.google.devtools.build.importdeps.testdata.Library$Class11
-    com.google.devtools.build.importdeps.testdata.Library$Class2
-    com.google.devtools.build.importdeps.testdata.Library$Class3
-    com.google.devtools.build.importdeps.testdata.Library$Class4
-    com.google.devtools.build.importdeps.testdata.Library$Class5
-    com.google.devtools.build.importdeps.testdata.Library$Class6
-    com.google.devtools.build.importdeps.testdata.Library$Class7
-    com.google.devtools.build.importdeps.testdata.Library$Class8
-    com.google.devtools.build.importdeps.testdata.Library$Class9
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryInterface
-    com.google.devtools.build.importdeps.testdata.LibraryInterface$Func
-    com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceBar
-    com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceFoo
-    com.google.devtools.build.importdeps.testdata.LibraryInterface$One
-    com.google.devtools.build.importdeps.testdata.LibraryInterface$Two
+    com.google.devtools.build.importdeps.testdata.Client$InnerClassWithSyntheticConstructorParam (in testdata:testdata_client)
+    com.google.devtools.build.importdeps.testdata.Library (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class1 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class11 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class2 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class3 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class4 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class5 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class6 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class7 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class8 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class9 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface (in testdata:testdata_lib_LibraryInterface)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface$Func (in testdata:testdata_lib_LibraryInterface)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceBar (in testdata:testdata_lib_LibraryInterface)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceFoo (in testdata:testdata_lib_LibraryInterface)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface$One (in testdata:testdata_lib_LibraryInterface)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface$Two (in testdata:testdata_lib_LibraryInterface)
 Indirectly missing class java.lang.annotation.Annotation. Referenced by:
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation (in testdata:testdata_lib_LibraryAnnotations)
 Missing member 'name' in class com.google.devtools.build.importdeps.testdata.Client$EnumTest : name=name, descriptor=()Ljava/lang/String;
 Missing member 'ordinal' in class com.google.devtools.build.importdeps.testdata.Client$EnumTest : name=ordinal, descriptor=()I
+The class hierarchies of the classes with missing members:
+    com.google.devtools.build.importdeps.testdata.Client$EnumTest (in testdata:testdata_client)
 ===Total===
 missing=20
 incomplete=29
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.stderr.warning.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.stderr.warning.txt
index a5a3f24..dd37a27 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.stderr.warning.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.stderr.warning.txt
@@ -22,47 +22,49 @@
 Missing java.lang.invoke.MethodType
 Missing java.util.Objects
 Indirectly missing class java.lang.Enum. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Client$EnumTest
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationFlag
+    com.google.devtools.build.importdeps.testdata.Client$EnumTest (in testdata:testdata_client)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationFlag (in testdata:testdata_lib_LibraryAnnotations)
 Indirectly missing class java.lang.Exception. Referenced by:
-    com.google.devtools.build.importdeps.testdata.LibraryException
+    com.google.devtools.build.importdeps.testdata.LibraryException (in testdata:testdata_lib_LibraryException)
 Indirectly missing class java.lang.Object. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Client$InnerClassWithSyntheticConstructorParam
-    com.google.devtools.build.importdeps.testdata.Library
-    com.google.devtools.build.importdeps.testdata.Library$Class1
-    com.google.devtools.build.importdeps.testdata.Library$Class11
-    com.google.devtools.build.importdeps.testdata.Library$Class2
-    com.google.devtools.build.importdeps.testdata.Library$Class3
-    com.google.devtools.build.importdeps.testdata.Library$Class4
-    com.google.devtools.build.importdeps.testdata.Library$Class5
-    com.google.devtools.build.importdeps.testdata.Library$Class6
-    com.google.devtools.build.importdeps.testdata.Library$Class7
-    com.google.devtools.build.importdeps.testdata.Library$Class8
-    com.google.devtools.build.importdeps.testdata.Library$Class9
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryInterface
-    com.google.devtools.build.importdeps.testdata.LibraryInterface$Func
-    com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceBar
-    com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceFoo
-    com.google.devtools.build.importdeps.testdata.LibraryInterface$One
-    com.google.devtools.build.importdeps.testdata.LibraryInterface$Two
+    com.google.devtools.build.importdeps.testdata.Client$InnerClassWithSyntheticConstructorParam (in testdata:testdata_client)
+    com.google.devtools.build.importdeps.testdata.Library (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class1 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class11 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class2 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class3 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class4 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class5 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class6 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class7 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class8 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class9 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface (in testdata:testdata_lib_LibraryInterface)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface$Func (in testdata:testdata_lib_LibraryInterface)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceBar (in testdata:testdata_lib_LibraryInterface)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceFoo (in testdata:testdata_lib_LibraryInterface)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface$One (in testdata:testdata_lib_LibraryInterface)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface$Two (in testdata:testdata_lib_LibraryInterface)
 Indirectly missing class java.lang.annotation.Annotation. Referenced by:
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation (in testdata:testdata_lib_LibraryAnnotations)
 Missing member 'name' in class com.google.devtools.build.importdeps.testdata.Client$EnumTest : name=name, descriptor=()Ljava/lang/String;
 Missing member 'ordinal' in class com.google.devtools.build.importdeps.testdata.Client$EnumTest : name=ordinal, descriptor=()I
+The class hierarchies of the classes with missing members:
+    com.google.devtools.build.importdeps.testdata.Client$EnumTest (in testdata:testdata_client)
 ===Total===
 missing=20
 incomplete=29
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.txt
index 27d55cc..097719a 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.txt
@@ -19,47 +19,49 @@
 Missing java.lang.invoke.MethodType
 Missing java.util.Objects
 Indirectly missing class java.lang.Enum. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Client$EnumTest
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationFlag
+    com.google.devtools.build.importdeps.testdata.Client$EnumTest (in testdata:testdata_client)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationFlag (in testdata:testdata_lib_LibraryAnnotations)
 Indirectly missing class java.lang.Exception. Referenced by:
-    com.google.devtools.build.importdeps.testdata.LibraryException
+    com.google.devtools.build.importdeps.testdata.LibraryException (in testdata:testdata_lib_LibraryException)
 Indirectly missing class java.lang.Object. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Client$InnerClassWithSyntheticConstructorParam
-    com.google.devtools.build.importdeps.testdata.Library
-    com.google.devtools.build.importdeps.testdata.Library$Class1
-    com.google.devtools.build.importdeps.testdata.Library$Class11
-    com.google.devtools.build.importdeps.testdata.Library$Class2
-    com.google.devtools.build.importdeps.testdata.Library$Class3
-    com.google.devtools.build.importdeps.testdata.Library$Class4
-    com.google.devtools.build.importdeps.testdata.Library$Class5
-    com.google.devtools.build.importdeps.testdata.Library$Class6
-    com.google.devtools.build.importdeps.testdata.Library$Class7
-    com.google.devtools.build.importdeps.testdata.Library$Class8
-    com.google.devtools.build.importdeps.testdata.Library$Class9
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryInterface
-    com.google.devtools.build.importdeps.testdata.LibraryInterface$Func
-    com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceBar
-    com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceFoo
-    com.google.devtools.build.importdeps.testdata.LibraryInterface$One
-    com.google.devtools.build.importdeps.testdata.LibraryInterface$Two
+    com.google.devtools.build.importdeps.testdata.Client$InnerClassWithSyntheticConstructorParam (in testdata:testdata_client)
+    com.google.devtools.build.importdeps.testdata.Library (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class1 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class11 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class2 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class3 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class4 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class5 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class6 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class7 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class8 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class9 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface (in testdata:testdata_lib_LibraryInterface)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface$Func (in testdata:testdata_lib_LibraryInterface)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceBar (in testdata:testdata_lib_LibraryInterface)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceFoo (in testdata:testdata_lib_LibraryInterface)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface$One (in testdata:testdata_lib_LibraryInterface)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface$Two (in testdata:testdata_lib_LibraryInterface)
 Indirectly missing class java.lang.annotation.Annotation. Referenced by:
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation (in testdata:testdata_lib_LibraryAnnotations)
 Missing member 'name' in class com.google.devtools.build.importdeps.testdata.Client$EnumTest : name=name, descriptor=()Ljava/lang/String;
 Missing member 'ordinal' in class com.google.devtools.build.importdeps.testdata.Client$EnumTest : name=ordinal, descriptor=()I
+The class hierarchies of the classes with missing members:
+    com.google.devtools.build.importdeps.testdata.Client$EnumTest (in testdata:testdata_client)
 ===Total===
 missing=20
 incomplete=29
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_interface_missing.stderr.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_interface_missing.stderr.txt
index 3983296..a8848a8 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_interface_missing.stderr.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_interface_missing.stderr.txt
@@ -8,17 +8,20 @@
 Missing com.google.devtools.build.importdeps.testdata.LibraryInterface$One
 Missing com.google.devtools.build.importdeps.testdata.LibraryInterface$Two
 Indirectly missing class com.google.devtools.build.importdeps.testdata.LibraryInterface. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Client
+    com.google.devtools.build.importdeps.testdata.Client (in testdata:testdata_client)
 Indirectly missing class com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceBar. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Library$Class11
+    com.google.devtools.build.importdeps.testdata.Library$Class11 (in testdata:testdata_lib_Library)
 Indirectly missing class com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceFoo. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Library$Class11
+    com.google.devtools.build.importdeps.testdata.Library$Class11 (in testdata:testdata_lib_Library)
 Indirectly missing class com.google.devtools.build.importdeps.testdata.LibraryInterface$One. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Client
+    com.google.devtools.build.importdeps.testdata.Client (in testdata:testdata_client)
 Indirectly missing class com.google.devtools.build.importdeps.testdata.LibraryInterface$Two. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Client
+    com.google.devtools.build.importdeps.testdata.Client (in testdata:testdata_client)
 Missing member 'bar' in class com.google.devtools.build.importdeps.testdata.Library$Class11 : name=bar, descriptor=()V
 Missing member 'foo' in class com.google.devtools.build.importdeps.testdata.Library$Class11 : name=foo, descriptor=()V
+The class hierarchies of the classes with missing members:
+    com.google.devtools.build.importdeps.testdata.Library$Class11 (in testdata:testdata_lib_Library)
+        java.lang.Object
 ===Total===
 missing=6
 incomplete=2
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_interface_missing.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_interface_missing.txt
index e8a282b..b5b2f0b 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_interface_missing.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_interface_missing.txt
@@ -5,17 +5,20 @@
 Missing com.google.devtools.build.importdeps.testdata.LibraryInterface$One
 Missing com.google.devtools.build.importdeps.testdata.LibraryInterface$Two
 Indirectly missing class com.google.devtools.build.importdeps.testdata.LibraryInterface. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Client
+    com.google.devtools.build.importdeps.testdata.Client (in testdata:testdata_client)
 Indirectly missing class com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceBar. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Library$Class11
+    com.google.devtools.build.importdeps.testdata.Library$Class11 (in testdata:testdata_lib_Library)
 Indirectly missing class com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceFoo. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Library$Class11
+    com.google.devtools.build.importdeps.testdata.Library$Class11 (in testdata:testdata_lib_Library)
 Indirectly missing class com.google.devtools.build.importdeps.testdata.LibraryInterface$One. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Client
+    com.google.devtools.build.importdeps.testdata.Client (in testdata:testdata_client)
 Indirectly missing class com.google.devtools.build.importdeps.testdata.LibraryInterface$Two. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Client
+    com.google.devtools.build.importdeps.testdata.Client (in testdata:testdata_client)
 Missing member 'bar' in class com.google.devtools.build.importdeps.testdata.Library$Class11 : name=bar, descriptor=()V
 Missing member 'foo' in class com.google.devtools.build.importdeps.testdata.Library$Class11 : name=foo, descriptor=()V
+The class hierarchies of the classes with missing members:
+    com.google.devtools.build.importdeps.testdata.Library$Class11 (in testdata:testdata_lib_Library)
+        java.lang.Object
 ===Total===
 missing=6
 incomplete=2
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_members_missing.stderr.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_members_missing.stderr.txt
index 8f3f402..68240d9 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_members_missing.stderr.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_members_missing.stderr.txt
@@ -5,6 +5,15 @@
 Missing member 'field' in class com.google.devtools.build.importdeps.testdata.Library$Class3 : name=field, descriptor=Lcom/google/devtools/build/importdeps/testdata/Library$Class4;
 Missing member 'createClass5' in class com.google.devtools.build.importdeps.testdata.Library$Class4 : name=createClass5, descriptor=()Lcom/google/devtools/build/importdeps/testdata/Library$Class5;
 Missing member 'create' in class com.google.devtools.build.importdeps.testdata.Library$Class5 : name=create, descriptor=(Lcom/google/devtools/build/importdeps/testdata/Library$Class7;)Lcom/google/devtools/build/importdeps/testdata/Library$Class6;
+The class hierarchies of the classes with missing members:
+    com.google.devtools.build.importdeps.testdata.Library$Class1 (in testdata:testdata_lib_Library_no_members)
+        java.lang.Object
+    com.google.devtools.build.importdeps.testdata.Library$Class3 (in testdata:testdata_lib_Library_no_members)
+        java.lang.Object
+    com.google.devtools.build.importdeps.testdata.Library$Class4 (in testdata:testdata_lib_Library_no_members)
+        java.lang.Object
+    com.google.devtools.build.importdeps.testdata.Library$Class5 (in testdata:testdata_lib_Library_no_members)
+        java.lang.Object
 ===Total===
 missing=0
 incomplete=0
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_members_missing.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_members_missing.txt
index 714276c..ba615c2 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_members_missing.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_members_missing.txt
@@ -2,6 +2,15 @@
 Missing member 'field' in class com.google.devtools.build.importdeps.testdata.Library$Class3 : name=field, descriptor=Lcom/google/devtools/build/importdeps/testdata/Library$Class4;
 Missing member 'createClass5' in class com.google.devtools.build.importdeps.testdata.Library$Class4 : name=createClass5, descriptor=()Lcom/google/devtools/build/importdeps/testdata/Library$Class5;
 Missing member 'create' in class com.google.devtools.build.importdeps.testdata.Library$Class5 : name=create, descriptor=(Lcom/google/devtools/build/importdeps/testdata/Library$Class7;)Lcom/google/devtools/build/importdeps/testdata/Library$Class6;
+The class hierarchies of the classes with missing members:
+    com.google.devtools.build.importdeps.testdata.Library$Class1 (in testdata:testdata_lib_Library_no_members)
+        java.lang.Object
+    com.google.devtools.build.importdeps.testdata.Library$Class3 (in testdata:testdata_lib_Library_no_members)
+        java.lang.Object
+    com.google.devtools.build.importdeps.testdata.Library$Class4 (in testdata:testdata_lib_Library_no_members)
+        java.lang.Object
+    com.google.devtools.build.importdeps.testdata.Library$Class5 (in testdata:testdata_lib_Library_no_members)
+        java.lang.Object
 ===Total===
 missing=0
 incomplete=0
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_missing.stderr.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_missing.stderr.txt
index 0db51a9..f87247e 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_missing.stderr.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_missing.stderr.txt
@@ -14,7 +14,7 @@
 Missing com.google.devtools.build.importdeps.testdata.Library$Class8
 Missing com.google.devtools.build.importdeps.testdata.Library$Class9
 Indirectly missing class com.google.devtools.build.importdeps.testdata.Library. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Client
+    com.google.devtools.build.importdeps.testdata.Client (in testdata:testdata_client)
 ===Total===
 missing=12
 incomplete=1
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_missing.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_missing.txt
index fa5e95c..1e86f78 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_missing.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_missing.txt
@@ -11,7 +11,7 @@
 Missing com.google.devtools.build.importdeps.testdata.Library$Class8
 Missing com.google.devtools.build.importdeps.testdata.Library$Class9
 Indirectly missing class com.google.devtools.build.importdeps.testdata.Library. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Client
+    com.google.devtools.build.importdeps.testdata.Client (in testdata:testdata_client)
 ===Total===
 missing=12
 incomplete=1
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_string_annotation_value_test.stderr.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_string_annotation_value_test.stderr.txt
index fb49176..6e3d300 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_string_annotation_value_test.stderr.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_string_annotation_value_test.stderr.txt
@@ -4,9 +4,9 @@
 Missing java.lang.Object
 Missing java.lang.annotation.Annotation
 Indirectly missing class java.lang.Object. Referenced by:
-    com.google.devtools.build.importdeps.testdata.StringAnnotation
+    com.google.devtools.build.importdeps.testdata.StringAnnotation (in testdata:StringAnnotation)
 Indirectly missing class java.lang.annotation.Annotation. Referenced by:
-    com.google.devtools.build.importdeps.testdata.StringAnnotation
+    com.google.devtools.build.importdeps.testdata.StringAnnotation (in testdata:StringAnnotation)
 ===Total===
 missing=2
 incomplete=1
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_string_annotation_value_test.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_string_annotation_value_test.txt
index 4699e35..a9888ef 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_string_annotation_value_test.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_string_annotation_value_test.txt
@@ -1,9 +1,9 @@
 Missing java.lang.Object
 Missing java.lang.annotation.Annotation
 Indirectly missing class java.lang.Object. Referenced by:
-    com.google.devtools.build.importdeps.testdata.StringAnnotation
+    com.google.devtools.build.importdeps.testdata.StringAnnotation (in testdata:StringAnnotation)
 Indirectly missing class java.lang.annotation.Annotation. Referenced by:
-    com.google.devtools.build.importdeps.testdata.StringAnnotation
+    com.google.devtools.build.importdeps.testdata.StringAnnotation (in testdata:StringAnnotation)
 ===Total===
 missing=2
 incomplete=1
