code: def execute(self):
      
      if JvmResolveSubsystem.global_instance().get_options().resolver != 'ivy':
        return
  
      compile_classpath = self.context.products.get_data('compile_classpath',
          init_func=ClasspathProducts.init_func(self.get_options().pants_workdir))
  
      targets = self.context.targets()
      if all(not isinstance(target, JarLibrary) for target in targets):
        if self._report:
          self.context.log.info("Not generating a report. No resolution performed.")
        return
  
      executor = self.create_java_executor()
      results = self.resolve(executor=executor,
                                        targets=targets,
                                        classpath_products=compile_classpath,
                                        confs=self.get_options().confs,
                                        extra_args=self._args)
      if self._report:
        results_with_resolved_artifacts = [r for r in results if r.has_resolved_artifacts]
  
        if not results_with_resolved_artifacts:
          self.context.log.info("Not generating a report. No resolution performed.")
        else:
          for result in results_with_resolved_artifacts:
            self._generate_ivy_report(result)
docs: Resolves the specified confs for the configured targets and returns an iterator over
      tuples of (conf, jar path).