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

@@ -0,0 +1,30 @@
val kotlinVersion = "1.3.61"
val spekVersion = "2.0.9"
plugins {
application
kotlin("jvm") version "1.3.61"
}
dependencies {
compile(kotlin("stdlib"))
implementation("com.natpryce:konfig:1.6.10.0")
implementation("com.github.pengrad:java-telegram-bot-api:4.6.0")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.3")
implementation("org.jetbrains.exposed:exposed-core:0.21.1")
implementation("org.jetbrains.exposed", "exposed-dao", "0.21.1")
implementation("org.jetbrains.exposed", "exposed-jdbc", "0.21.1")
implementation("org.jetbrains.exposed", "exposed-jodatime", "0.21.1")
implementation("io.javalin:javalin:3.7.0")
implementation("org.slf4j:slf4j-simple:1.8.0-beta4")
implementation(group = "org.xerial", name = "sqlite-jdbc", version = "3.30.1")
implementation("org.postgresql:postgresql:42.2.2")
implementation("com.fasterxml.jackson.core:jackson-databind:2.10.1")
testImplementation("org.spekframework.spek2:spek-dsl-jvm:$spekVersion")
testRuntimeOnly("org.spekframework.spek2:spek-runner-junit5:$spekVersion")
testCompile("com.winterbe:expekt:0.5.0")
}
repositories {
jcenter()
}

View File

@@ -1937,6 +1937,102 @@
], ],
"sha256": "621ab7f33d23dae0b190b16d840271643202bb888cfb5395a8cf775777a9d5b7" "sha256": "621ab7f33d23dae0b190b16d840271643202bb888cfb5395a8cf775777a9d5b7"
}, },
{
"id": {
"group": "com.github.ajalt",
"name": "clikt",
"version": "2.5.0-beta1",
"type": "jar",
"extension": "jar"
},
"name": "clikt-2.5.0-beta1.jar",
"path": "com/github/ajalt/clikt/2.5.0-beta1",
"urls": [
"https://jcenter.bintray.com/com/github/ajalt/clikt/2.5.0-beta1/clikt-2.5.0-beta1.jar",
"https://repo.gradle.org/gradle/libs-releases/com/github/ajalt/clikt/2.5.0-beta1/clikt-2.5.0-beta1.jar"
],
"sha256": "6d0e62b4328fc555692f98aa41bf0aed46545dd1a87ad04e443ce705af3add5a"
},
{
"id": {
"group": "com.github.ajalt",
"name": "clikt",
"version": "2.5.0-beta1",
"type": "module",
"extension": "module"
},
"name": "clikt-2.5.0-beta1.module",
"path": "com/github/ajalt/clikt/2.5.0-beta1",
"urls": [
"https://jcenter.bintray.com/com/github/ajalt/clikt/2.5.0-beta1/clikt-2.5.0-beta1.module",
"https://repo.gradle.org/gradle/libs-releases/com/github/ajalt/clikt/2.5.0-beta1/clikt-2.5.0-beta1.module"
],
"sha256": "b9b7eb3ef910635344877a8e4b70fca0497c945a11020e91c057c7b31a64558f"
},
{
"id": {
"group": "com.github.ajalt",
"name": "clikt",
"version": "2.5.0-beta1",
"type": "pom",
"extension": "pom"
},
"name": "clikt-2.5.0-beta1.pom",
"path": "com/github/ajalt/clikt/2.5.0-beta1",
"urls": [
"https://jcenter.bintray.com/com/github/ajalt/clikt/2.5.0-beta1/clikt-2.5.0-beta1.pom",
"https://repo.gradle.org/gradle/libs-releases/com/github/ajalt/clikt/2.5.0-beta1/clikt-2.5.0-beta1.pom"
],
"sha256": "8d6e3114c251430eefd541018caa529bbf6b01b20fb6ae7ae1007b9c4131a895"
},
{
"id": {
"group": "com.github.ajalt",
"name": "clikt-metadata",
"version": "2.5.0-beta1",
"type": "jar",
"extension": "jar"
},
"name": "clikt-metadata-2.5.0-beta1.jar",
"path": "com/github/ajalt/clikt-metadata/2.5.0-beta1",
"urls": [
"https://jcenter.bintray.com/com/github/ajalt/clikt-metadata/2.5.0-beta1/clikt-metadata-2.5.0-beta1.jar",
"https://repo.gradle.org/gradle/libs-releases/com/github/ajalt/clikt-metadata/2.5.0-beta1/clikt-metadata-2.5.0-beta1.jar"
],
"sha256": "409d61a9b008367c79e7e347a8fe14b685dd5b75b5dbb7e29c1a80a88da58e6d"
},
{
"id": {
"group": "com.github.ajalt",
"name": "clikt-metadata",
"version": "2.5.0-beta1",
"type": "module",
"extension": "module"
},
"name": "clikt-metadata-2.5.0-beta1.module",
"path": "com/github/ajalt/clikt-metadata/2.5.0-beta1",
"urls": [
"https://jcenter.bintray.com/com/github/ajalt/clikt-metadata/2.5.0-beta1/clikt-metadata-2.5.0-beta1.module",
"https://repo.gradle.org/gradle/libs-releases/com/github/ajalt/clikt-metadata/2.5.0-beta1/clikt-metadata-2.5.0-beta1.module"
],
"sha256": "61717ae513800b96aa3cc0e3039903b257b2bbf6723457c5ab0b87dcbc3447cb"
},
{
"id": {
"group": "com.github.ajalt",
"name": "clikt-metadata",
"version": "2.5.0-beta1",
"type": "pom",
"extension": "pom"
},
"name": "clikt-metadata-2.5.0-beta1.pom",
"path": "com/github/ajalt/clikt-metadata/2.5.0-beta1",
"urls": [
"https://jcenter.bintray.com/com/github/ajalt/clikt-metadata/2.5.0-beta1/clikt-metadata-2.5.0-beta1.pom",
"https://repo.gradle.org/gradle/libs-releases/com/github/ajalt/clikt-metadata/2.5.0-beta1/clikt-metadata-2.5.0-beta1.pom"
],
"sha256": "936e712cb1349f4107a1abc059810a432dba8ed4513d1a754c43a12003b3d244"
},
{ {
"id": { "id": {
"group": "com.squareup", "group": "com.squareup",
@@ -3087,6 +3183,38 @@
], ],
"sha256": "719692dc9755d69a237c64b8ae365e4bdc7041a5424ecc853522954633208ad1" "sha256": "719692dc9755d69a237c64b8ae365e4bdc7041a5424ecc853522954633208ad1"
}, },
{
"id": {
"group": "com.christophsturm",
"name": "filepeek",
"version": "0.1.2",
"type": "jar",
"extension": "jar"
},
"name": "filepeek-0.1.2.jar",
"path": "com/christophsturm/filepeek/0.1.2",
"urls": [
"https://jcenter.bintray.com/com/christophsturm/filepeek/0.1.2/filepeek-0.1.2.jar",
"https://repo.gradle.org/gradle/libs-releases/com/christophsturm/filepeek/0.1.2/filepeek-0.1.2.jar"
],
"sha256": "29a5735255bb1f3652a4e2592a2bd8ca754717f8d62eb4a65680c992b98af4b0"
},
{
"id": {
"group": "com.christophsturm",
"name": "filepeek",
"version": "0.1.2",
"type": "pom",
"extension": "pom"
},
"name": "filepeek-0.1.2.pom",
"path": "com/christophsturm/filepeek/0.1.2",
"urls": [
"https://jcenter.bintray.com/com/christophsturm/filepeek/0.1.2/filepeek-0.1.2.pom",
"https://repo.gradle.org/gradle/libs-releases/com/christophsturm/filepeek/0.1.2/filepeek-0.1.2.pom"
],
"sha256": "a01fcc97303305918b3c8e943bc208c5a0d915b8f8fb9c963cddf27cd89e3e57"
},
{ {
"id": { "id": {
"group": "dev.minutest", "group": "dev.minutest",
@@ -3183,6 +3311,38 @@
], ],
"sha256": "e4280689a4843bcca02327f575084eb48468f387308ba01789fac19aa57483b7" "sha256": "e4280689a4843bcca02327f575084eb48468f387308ba01789fac19aa57483b7"
}, },
{
"id": {
"group": "io.strikt",
"name": "strikt-core",
"version": "0.23.7",
"type": "jar",
"extension": "jar"
},
"name": "strikt-core-0.23.7.jar",
"path": "io/strikt/strikt-core/0.23.7",
"urls": [
"https://jcenter.bintray.com/io/strikt/strikt-core/0.23.7/strikt-core-0.23.7.jar",
"https://repo.gradle.org/gradle/libs-releases/io/strikt/strikt-core/0.23.7/strikt-core-0.23.7.jar"
],
"sha256": "981ddcab34436bf9eeb64481dd23a92c75c39f52a7581ed009b72ba371072fbe"
},
{
"id": {
"group": "io.strikt",
"name": "strikt-core",
"version": "0.23.7",
"type": "pom",
"extension": "pom"
},
"name": "strikt-core-0.23.7.pom",
"path": "io/strikt/strikt-core/0.23.7",
"urls": [
"https://jcenter.bintray.com/io/strikt/strikt-core/0.23.7/strikt-core-0.23.7.pom",
"https://repo.gradle.org/gradle/libs-releases/io/strikt/strikt-core/0.23.7/strikt-core-0.23.7.pom"
],
"sha256": "3d679ad3f70c1ab17fee8125561da6226180f22b18f57693bcca1f2a92b9859c"
},
{ {
"id": { "id": {
"group": "org.apache", "group": "org.apache",
@@ -4081,5 +4241,22 @@
} }
] ]
} }
},
"buildSrc": {
"name": "buildSrc",
"version": "unspecified",
"path": "buildSrc",
"gradle": {
"version": "6.1",
"type": "bin",
"url": "https://services.gradle.org/distributions/gradle-6.1-bin.zip",
"sha256": "d0c43d14e1c70a48b82442f435d06186351a2d290d72afd5b8866f15e6d7038a",
"nativeVersion": "0.19"
},
"dependencies": {
"plugin": [],
"buildscript": [],
"project": []
}
} }
} }

View File

@@ -8,10 +8,12 @@ import org.gradle.api.internal.artifacts.dsl.DefaultRepositoryHandler.MAVEN_CENT
import strikt.api.expectThat import strikt.api.expectThat
import strikt.assertions.all import strikt.assertions.all
import strikt.assertions.containsExactly import strikt.assertions.containsExactly
import strikt.assertions.flatMap
import strikt.assertions.get import strikt.assertions.get
import strikt.assertions.hasSize import strikt.assertions.hasSize
import strikt.assertions.isEqualTo import strikt.assertions.isEqualTo
import strikt.assertions.map import strikt.assertions.map
import strikt.assertions.none
import strikt.assertions.startsWith import strikt.assertions.startsWith
class BasicTest : JUnit5Minutests { class BasicTest : JUnit5Minutests {
@@ -22,6 +24,12 @@ class BasicTest : JUnit5Minutests {
expectThat(build()) { expectThat(build()) {
get("gradle version") { gradle.version }.isEqualTo(System.getProperty("compat.gradle.version")) 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 { get("root project dependencies") { rootProject.projectDependencies }.and {
ids.containsExactly( ids.containsExactly(
"com.squareup.moshi:moshi:1.8.0@jar", "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) } .mapNotNull { it.repositoryResolver(ivySettings) }
fun create(dependencies: DependencyHandler): ConfigurationResolver = fun create(dependencies: DependencyHandler): ConfigurationResolver =