class KPM::BaseArtifact

def build_coordinates(group_id, artifact_id, packaging, classifier, version=nil)

def build_coordinates(group_id, artifact_id, packaging, classifier, version=nil)
  if classifier.nil?
    if version.nil?
      "#{group_id}:#{artifact_id}:#{packaging}"
    else
      "#{group_id}:#{artifact_id}:#{packaging}:#{version}"
    end
  else
    if version.nil?
      "#{group_id}:#{artifact_id}:#{packaging}:#{classifier}"
    else
      "#{group_id}:#{artifact_id}:#{packaging}:#{classifier}:#{version}"
    end
  end
end

def nexus_defaults

def nexus_defaults
  {
    url: 'https://repository.sonatype.org',
    repository: 'central-proxy'
  }
end

def nexus_remote(overrides={}, ssl_verify=true)

def nexus_remote(overrides={}, ssl_verify=true)
  nexus_remote ||= NexusCli::RemoteFactory.create(nexus_defaults.merge(overrides || {}), ssl_verify)
end

def pull(group_id, artifact_id, packaging='jar', version='LATEST', destination=nil, overrides={}, ssl_verify=true)

def pull(group_id, artifact_id, packaging='jar', version='LATEST', destination=nil, overrides={}, ssl_verify=true)
  coordinates = build_coordinates(group_id, artifact_id, packaging, nil, version)
  nexus_remote(overrides, ssl_verify).pull_artifact(coordinates, destination)
end