docs: public void execute() throws IOException {
          if (GradleVersion.current().compareTo(MIN_GRADLE_VERSION) < 0 && !quiet) {
              project.getLogger().warn("Support for running gradle-download-task "
                      + "with Gradle 1.x has been deprecated and will be removed in "
                      + "gradle-download-task 4.0.0");
          }
          if (JavaVersion.current().compareTo(JavaVersion.VERSION_1_7) < 0 && !quiet) {
              project.getLogger().warn("Support for running gradle-download-task "
                      + "using Java 6 has been deprecated and will be removed in "
                      + "gradle-download-task 4.0.0");
          }
  
          if (sources.isEmpty()) {
              throw new IllegalArgumentException("Please provide a download source");
          }
          if (dest == null) {
              throw new IllegalArgumentException("Please provide a download destination");
          }
  
          if (dest.equals(project.getBuildDir())) {
              //make sure build dir exists
              dest.mkdirs();
          }
          
          if (sources.size() > 1 && !dest.isDirectory()) {
              if (!dest.exists()) {
                  // create directory automatically
                  dest.mkdirs();
              } else {
                  throw new IllegalArgumentException("If multiple sources are provided "
                          + "the destination has to be a directory.");
              }
          }
          
          CachingHttpClientFactory clientFactory = new CachingHttpClientFactory();
          try {
              for (URL src : sources) {
                  execute(src, clientFactory);
              }
          } finally {
              clientFactory.close();
          }
      }