답변:
Apache Buildr 코드 기반 : http://svn.apache.org/repos/asf/buildr/trunk/lib/buildr/packaging/artifact.rb
다음과 같이 할 수 있습니다 :
def snapshot?
version =~ /-SNAPSHOT$/
end
if snapshot?
metadata_path = "#{group_path}/#{id}/#{version}/maven-metadata.xml"
metadata_xml = StringIO.new
URI.download repo_url + metadata_path, metadata_xml
metadata = REXML::Document.new(metadata_xml.string).root
timestamp = REXML::XPath.first(metadata, '//timestamp')
build_number = REXML::XPath.first(metadata, '//buildNumber')
snapshot_of = version[0, version.size - 9]
classifier_snippet = (classifier != nil) ? "-#{classifier}" : ""
repo_url + "#{group_path}/#{id}/#{version}/#{id}-#{snapshot_of}-#{timestamp.text}-#{build_number.text}#{classifier_snippet}.#{type}"
end
RiotGames에는 유용한 정보가 있습니다.
Artifactory를 Maven 저장소로 사용하는 경우 더 우아한 솔루션이 있습니다.
버전 2.6.0 부터 고유하지 않은 아티팩트에 대한 요청은 사용 가능한 최신 스냅 샷을 리턴 할 수 있습니다 .
이 기능을 사용하려면 먼저 대상 리포지토리가 고유 한 스냅 샷 정책으로 정의되어 있는지 확인한 다음 다음과 같은 고유하지 않은 스냅 샷 버전을 사용하여 원하는 아티팩트를 요청하십시오.
org / artifact / 1.0-SNAPSHOT / artifact-1.0-SNAPSHOT.jar
그리고 기본 개정판 1.0 의 이슈에 대한 최신 고유 스냅 샷 이 반환됩니다.