@Override
  public ArtifactSpec resolve(ArtifactSpec spec) {
    resetListeners();
    try {
      if (spec.file != null) {
        return spec;
      }
      File file = this.resolver.resolve(spec.mavenGav()).withoutTransitivity().asSingleFile();
      if (file == null) {
        return null;
      }
      spec.file = file;
    } finally {
      completeTransferListener();
    }

    return spec;
  }