Make lucene snapshot repository exclusive to lucene packages (#53353)
When depending on lucene snapshots we point maven at our own s3 backed repository. However, in this case lucene packages should only be retrieved from this location, and no other packages should ever be found in that repo. This commit makes the maven repository exclusive to lucene packages.
This commit is contained in:
parent
b8ef830c0a
commit
f63c32ff31
|
@ -48,6 +48,7 @@ import org.gradle.api.artifacts.Dependency
|
||||||
import org.gradle.api.artifacts.ModuleDependency
|
import org.gradle.api.artifacts.ModuleDependency
|
||||||
import org.gradle.api.artifacts.ProjectDependency
|
import org.gradle.api.artifacts.ProjectDependency
|
||||||
import org.gradle.api.artifacts.dsl.RepositoryHandler
|
import org.gradle.api.artifacts.dsl.RepositoryHandler
|
||||||
|
import org.gradle.api.artifacts.repositories.ExclusiveContentRepository
|
||||||
import org.gradle.api.artifacts.repositories.IvyArtifactRepository
|
import org.gradle.api.artifacts.repositories.IvyArtifactRepository
|
||||||
import org.gradle.api.artifacts.repositories.IvyPatternRepositoryLayout
|
import org.gradle.api.artifacts.repositories.IvyPatternRepositoryLayout
|
||||||
import org.gradle.api.artifacts.repositories.MavenArtifactRepository
|
import org.gradle.api.artifacts.repositories.MavenArtifactRepository
|
||||||
|
@ -350,10 +351,16 @@ class BuildPlugin implements Plugin<Project> {
|
||||||
// extract the revision number from the version with a regex matcher
|
// extract the revision number from the version with a regex matcher
|
||||||
List<String> matches = (luceneVersion =~ /\w+-snapshot-([a-z0-9]+)/).getAt(0) as List<String>
|
List<String> matches = (luceneVersion =~ /\w+-snapshot-([a-z0-9]+)/).getAt(0) as List<String>
|
||||||
String revision = matches.get(1)
|
String revision = matches.get(1)
|
||||||
repos.maven { MavenArtifactRepository repo ->
|
MavenArtifactRepository luceneRepo = repos.maven { MavenArtifactRepository repo ->
|
||||||
repo.name = 'lucene-snapshots'
|
repo.name = 'lucene-snapshots'
|
||||||
repo.url = "https://s3.amazonaws.com/download.elasticsearch.org/lucenesnapshots/${revision}"
|
repo.url = "https://s3.amazonaws.com/download.elasticsearch.org/lucenesnapshots/${revision}"
|
||||||
}
|
}
|
||||||
|
repos.exclusiveContent { ExclusiveContentRepository exclusiveRepo ->
|
||||||
|
exclusiveRepo.filter {
|
||||||
|
it.includeVersionByRegex(/org\.apache\.lucene/, '.*', ".*-snapshot-${revision}")
|
||||||
|
}
|
||||||
|
exclusiveRepo.forRepositories(luceneRepo)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue