code: def list_external_jar_dependencies(self, binary):
      
      classpath_products = self.context.products.get_data('runtime_classpath')
      classpath_entries = classpath_products.get_artifact_classpath_entries_for_targets(
          binary.closure(bfs=True, include_scopes=Scopes.JVM_RUNTIME_SCOPES,
                         respect_intransitive=True))
      external_jars = OrderedSet(jar_entry for conf, jar_entry in classpath_entries
                                 if conf == 'default')
      return [(entry.path, entry.coordinate) for entry in external_jars
              if not entry.is_excluded_by(binary.deploy_excludes)]
docs: Returns the external jar dependencies of the given binary.
  
      :param binary: The jvm binary target to list transitive external dependencies for.
      :type binary: :class:`pants.backend.jvm.targets.jvm_binary.JvmBinary`
      :returns: A list of (jar path, coordinate) tuples.
      :rtype: list of (string, :class:`pants.java.jar.M2Coordinate`)