[Scripting] Remove obsolete Aether dependencies and add new maven.resolver ones instead

scripting-dependencies-maven actually depended on both maven.resolver
and Aether dependencies, it caused an issue in KScript
(https://github.com/holgerbrandl/kscript/issues/345) and caused some
issues in the past. These problems were partially solved with exclude()
which is now removed.
This commit is contained in:
Ilya Muradyan
2022-05-04 00:54:34 +03:00
committed by Space
parent 3321a1b4e2
commit 0ea9c1fbce
3 changed files with 225 additions and 116 deletions
@@ -12,9 +12,6 @@ val embedded by configurations
embedded.apply {
exclude("org.slf4j", "slf4j-api")
exclude("org.eclipse.aether", "aether-api")
exclude("org.eclipse.aether", "aether-util")
exclude("org.eclipse.aether", "aether-spi")
}
plugins {
@@ -26,11 +23,12 @@ dependencies {
embedded(project(":kotlin-scripting-dependencies-maven")) { isTransitive = false }
embedded(project(":kotlin-scripting-dependencies")) { isTransitive = false }
embedded("org.eclipse.aether:aether-connector-basic:1.1.0")
embedded("org.eclipse.aether:aether-transport-wagon:1.1.0")
embedded("org.eclipse.aether:aether-transport-file:1.1.0")
embedded("org.apache.maven:maven-core:3.8.1")
embedded("org.apache.maven.wagon:wagon-http:3.4.3")
embedded("org.apache.maven.resolver:maven-resolver-connector-basic:1.8.0")
embedded("org.apache.maven.resolver:maven-resolver-transport-file:1.8.0")
embedded("org.apache.maven.resolver:maven-resolver-transport-wagon:1.8.0")
embedded("org.apache.maven.resolver:maven-resolver-impl:1.8.0")
embedded("org.apache.maven:maven-core:3.8.5")
embedded("org.apache.maven.wagon:wagon-http:3.5.1")
}
sourceSets {
@@ -5,33 +5,20 @@ plugins {
project.updateJvmTarget("1.6")
configurations.implementation {
/**
* Files with the same FQNs may exist both in these excluded artifacts and in dependencies of
* `org.apache.maven:maven-core`. If these classes fall into classpath together, it
* may lead to unpredictable errors, especially if these classes have different APIs.
*
* Example. Class `org.eclipse.aether.repository.RemoteRepository` is presented in both
* `maven-resolver-api-1.6.2` (which is resolved transitively from `maven-core`)
* and `aether-api-1.1.0` artifacts. One of the implementations has `isBlocked()`
* method, and another one lacks it. It leads to `NoSuchMethodError` in runtime.
*/
exclude("org.eclipse.aether", "aether-api")
exclude("org.eclipse.aether", "aether-util")
exclude("org.eclipse.aether", "aether-spi")
}
dependencies {
implementation(kotlinStdlib())
api(project(":kotlin-scripting-dependencies"))
implementation("org.eclipse.aether:aether-connector-basic:1.1.0")
implementation("org.eclipse.aether:aether-transport-wagon:1.1.0")
implementation("org.eclipse.aether:aether-transport-file:1.1.0")
implementation("org.apache.maven:maven-core:3.8.1")
implementation("org.apache.maven.wagon:wagon-http:3.4.3")
implementation("org.apache.maven:maven-core:3.8.5")
implementation("org.apache.maven.wagon:wagon-http:3.5.1")
implementation("org.apache.maven.resolver:maven-resolver-connector-basic:1.8.0")
implementation("org.apache.maven.resolver:maven-resolver-transport-file:1.8.0")
implementation("org.apache.maven.resolver:maven-resolver-transport-wagon:1.8.0")
implementation("org.apache.maven.resolver:maven-resolver-impl:1.8.0")
testImplementation(projectTests(":kotlin-scripting-dependencies"))
testImplementation(commonDependency("junit"))
testRuntimeOnly("org.slf4j:slf4j-nop:1.7.30")
testRuntimeOnly("org.slf4j:slf4j-nop:1.7.36")
testImplementation(kotlin("reflect"))
testImplementation(commonDependency("org.jetbrains.kotlinx", "kotlinx-coroutines-core"))
kotlinCompilerClasspath(project(":libraries:tools:stdlib-compiler-classpath"))