diff --git a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/SubprojectsTest.kt b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/SubprojectsTest.kt index 159f87c..af692d1 100644 --- a/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/SubprojectsTest.kt +++ b/plugin/src/compatTest/kotlin/org/nixos/gradle2nix/SubprojectsTest.kt @@ -29,6 +29,7 @@ class SubprojectsTest { } dependencies { + implementation(project(":child-a")) implementation("com.squareup.moshi:moshi:1.8.0") } """.trimIndent()) @@ -110,6 +111,14 @@ class SubprojectsTest { pom("com.squareup.okio:okio-parent:1.16.0"), jar("com.squareup.okio:okio:1.16.0"), pom("com.squareup.okio:okio:1.16.0"), + jar("com.squareup.okio:okio:2.2.2"), + pom("com.squareup.okio:okio:2.2.2"), + jar("org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60"), + pom("org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60"), + jar("org.jetbrains.kotlin:kotlin-stdlib:1.2.60"), + pom("org.jetbrains.kotlin:kotlin-stdlib:1.2.60"), + jar("org.jetbrains:annotations:13.0"), + pom("org.jetbrains:annotations:13.0"), pom("org.sonatype.oss:oss-parent:7"), actual = artifacts ) @@ -138,6 +147,7 @@ class SubprojectsTest { } dependencies { + implementation project(':child-a') implementation 'com.squareup.moshi:moshi:1.8.0' } """.trimIndent()) @@ -217,6 +227,14 @@ class SubprojectsTest { pom("com.squareup.okio:okio-parent:1.16.0"), jar("com.squareup.okio:okio:1.16.0"), pom("com.squareup.okio:okio:1.16.0"), + jar("com.squareup.okio:okio:2.2.2"), + pom("com.squareup.okio:okio:2.2.2"), + jar("org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60"), + pom("org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60"), + jar("org.jetbrains.kotlin:kotlin-stdlib:1.2.60"), + pom("org.jetbrains.kotlin:kotlin-stdlib:1.2.60"), + jar("org.jetbrains:annotations:13.0"), + pom("org.jetbrains:annotations:13.0"), pom("org.sonatype.oss:oss-parent:7"), actual = artifacts) } diff --git a/plugin/src/main/kotlin/org/nixos/gradle2nix/DependencyResolver.kt b/plugin/src/main/kotlin/org/nixos/gradle2nix/DependencyResolver.kt index 654dd9b..eb0ba5b 100644 --- a/plugin/src/main/kotlin/org/nixos/gradle2nix/DependencyResolver.kt +++ b/plugin/src/main/kotlin/org/nixos/gradle2nix/DependencyResolver.kt @@ -11,6 +11,7 @@ import org.gradle.api.artifacts.Configuration import org.gradle.api.artifacts.ConfigurationContainer import org.gradle.api.artifacts.Dependency import org.gradle.api.artifacts.component.ModuleComponentIdentifier +import org.gradle.api.artifacts.component.ProjectComponentIdentifier import org.gradle.api.artifacts.dsl.DependencyHandler import org.gradle.api.artifacts.result.ResolvedArtifactResult import org.gradle.api.logging.Logger @@ -34,17 +35,19 @@ internal class DependencyResolver( logger.warn("Cannot resolve configuration ${configuration.name}; ignoring.") return emptySet() } - return configuration.resolvedConfiguration.resolvedArtifacts.mapTo(sortedSetOf()) { - with (it) { - DefaultArtifact( - groupId = moduleVersion.id.group, - artifactId = moduleVersion.id.name, - version = moduleVersion.id.version, - classifier = classifier ?: "", - extension = extension, - sha256 = sha256(file) - ) - } + return configuration.resolvedConfiguration.resolvedArtifacts + .filterNot { it.id.componentIdentifier is ProjectComponentIdentifier } + .mapTo(sortedSetOf()) { + with (it) { + DefaultArtifact( + groupId = moduleVersion.id.group, + artifactId = moduleVersion.id.name, + version = moduleVersion.id.version, + classifier = classifier ?: "", + extension = extension, + sha256 = sha256(file) + ) + } } } @@ -153,7 +156,7 @@ private class MavenPomResolver( override fun addRepository(repository: Repository, replace: Boolean) {} } -private val HEX = "0123456789ABCDEF" +private const val HEX = "0123456789abcdef" private fun sha256(file: File): String = buildString { MessageDigest.getInstance("SHA-256").digest(file.readBytes())