Exclude local repositories from dependency resolution

Fixes https://github.com/tadfisher/gradle2nix/issues/8
This commit is contained in:
Tad Fisher
2020-02-19 12:49:40 -08:00
parent b1b0ba14db
commit baa58da5a1
4 changed files with 230 additions and 1 deletions

View File

@@ -8,10 +8,12 @@ import org.gradle.api.internal.artifacts.dsl.DefaultRepositoryHandler.MAVEN_CENT
import strikt.api.expectThat
import strikt.assertions.all
import strikt.assertions.containsExactly
import strikt.assertions.flatMap
import strikt.assertions.get
import strikt.assertions.hasSize
import strikt.assertions.isEqualTo
import strikt.assertions.map
import strikt.assertions.none
import strikt.assertions.startsWith
class BasicTest : JUnit5Minutests {
@@ -22,6 +24,12 @@ class BasicTest : JUnit5Minutests {
expectThat(build()) {
get("gradle version") { gradle.version }.isEqualTo(System.getProperty("compat.gradle.version"))
get("all dependencies") {
pluginDependencies +
rootProject.buildscriptDependencies +
rootProject.projectDependencies
}.flatMap { it.urls }.none { startsWith("file:") }
get("root project dependencies") { rootProject.projectDependencies }.and {
ids.containsExactly(
"com.squareup.moshi:moshi:1.8.0@jar",
@@ -47,5 +55,17 @@ class BasicTest : JUnit5Minutests {
}
}
}
withFixture("basic/basic-kotlin-project") {
test("excludes embedded kotlin repo") {
expectThat(build()) {
get("all dependencies") {
pluginDependencies +
rootProject.buildscriptDependencies +
rootProject.projectDependencies
}.flatMap { it.urls }.all { not { startsWith("file:") } }
}
}
}
}
}

View File

@@ -35,7 +35,9 @@ internal class ConfigurationResolverFactory(repositories: RepositoryHandler) {
})
}
private val resolvers = repositories.filterIsInstance<ResolutionAwareRepository>()
private val resolvers = repositories
.filterIsInstance<ResolutionAwareRepository>()
.filterNot { it.createResolver().isLocal }
.mapNotNull { it.repositoryResolver(ivySettings) }
fun create(dependencies: DependencyHandler): ConfigurationResolver =