diff --git a/fixtures/basic/basic-kotlin-project/kotlin/build.gradle.kts b/fixtures/basic/basic-kotlin-project/kotlin/build.gradle.kts new file mode 100644 index 0000000..c776334 --- /dev/null +++ b/fixtures/basic/basic-kotlin-project/kotlin/build.gradle.kts @@ -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() + } diff --git a/gradle-env.json b/gradle-env.json index 197f319..f86a723 100644 --- a/gradle-env.json +++ b/gradle-env.json @@ -1937,6 +1937,102 @@ ], "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": { "group": "com.squareup", @@ -3087,6 +3183,38 @@ ], "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": { "group": "dev.minutest", @@ -3183,6 +3311,38 @@ ], "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": { "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": [] + } } } \ No newline at end of file diff --git a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/BasicTest.kt b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/BasicTest.kt index 28ee39f..51e0e41 100644 --- a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/BasicTest.kt +++ b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/BasicTest.kt @@ -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:") } } + } + } + } } } diff --git a/plugin/src/main/kotlin/org/nixos/gradle2nix/ConfigurationResolver.kt b/plugin/src/main/kotlin/org/nixos/gradle2nix/ConfigurationResolver.kt index fa08598..7544c4c 100644 --- a/plugin/src/main/kotlin/org/nixos/gradle2nix/ConfigurationResolver.kt +++ b/plugin/src/main/kotlin/org/nixos/gradle2nix/ConfigurationResolver.kt @@ -35,7 +35,9 @@ internal class ConfigurationResolverFactory(repositories: RepositoryHandler) { }) } - private val resolvers = repositories.filterIsInstance() + private val resolvers = repositories + .filterIsInstance() + .filterNot { it.createResolver().isLocal } .mapNotNull { it.repositoryResolver(ivySettings) } fun create(dependencies: DependencyHandler): ConfigurationResolver =