Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds support for snapshot libraries (i.e. libraries with the version ending in
-SNAPSHOT
).The approach taken by this PR modifies
resolveLibrary
to fetch themaven-metadata.xml
file from every repository (when the passed library is a snapshot) to determine the last-published artifact download url.An issue with this approach is that if more than one repository is declared, then unnecessary downloads of the metadata files may happen, since they are all fetched before trying to download the artifacts. It would be better to try to download each artifact right after fetching each metadata file and to stop after the first successful download. This however requires inlining the
resolveLibrary
method intodownloadLibrary(Library)
. I preferred not doing so in this PR and leaving it as a future improvement.(Another way could be to make
resolveLibrary
return a lazy iterator which fetches the metadata file only when callingnext()
, essentially leavingdownloadLibrary(Library)
mostly untouched, but that'd be a breaking change sinceresolveLibrary
is public)Fixes #15