Skip to content

Commit 18139bb

Browse files
Ensured that only the unique repositories remain in the aetherDependencyManager after the repositories closure is called
1 parent 3e97991 commit 18139bb

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

grails-aether/src/main/groovy/org/codehaus/groovy/grails/resolve/maven/aether/config/AetherDsl.groovy

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,7 @@ class AetherDsl {
196196
callable.call()
197197

198198
this.aetherDependencyManager.repositories.addAll(rc.repositories)
199+
this.aetherDependencyManager.repositories.unique()
199200
}
200201

201202
/**

grails-aether/src/test/groovy/org/codehaus/groovy/grails/resolve/maven/AetherDependencyManagerSpec.groovy

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -618,4 +618,30 @@ class AetherDependencyManagerSpec extends Specification {
618618
report != null
619619
!report.hasError()
620620
}
621+
622+
void "Test duplicated repositories"() {
623+
given: "A dependency manager instance"
624+
def dependencyManager = new AetherDependencyManager()
625+
dependencyManager.parseDependencies {
626+
repositories {
627+
mavenCentral()
628+
mavenRepo "https://repo.grails.org/grails/core"
629+
}
630+
}
631+
632+
when: "Another set of dependencies are parsed (like an inline plugin)"
633+
dependencyManager.parseDependencies {
634+
repositories {
635+
mavenCentral()
636+
mavenRepo "https://repo.grails.org/grails/core"
637+
}
638+
}
639+
640+
then: "only the unique set of repositories remain"
641+
dependencyManager.repositories.size == 2
642+
643+
and: "the declaration order is retained"
644+
dependencyManager.repositories[0].id == "mavenCentral"
645+
dependencyManager.repositories[1].url == "https://repo.grails.org/grails/core"
646+
}
621647
}

0 commit comments

Comments
 (0)