From acd6347357d4b8c02ffa4c9d6edca4de6bab473e Mon Sep 17 00:00:00 2001 From: Sebastian Schuberth Date: Wed, 15 Feb 2023 10:38:45 +0100 Subject: [PATCH] fix(MavenSupport): Correct querying of artifact repos declared in POMs Adjust the expected result for `GradleKotlinScriptFunTest` as it indeed only declates JCenter as a repository [1]. [1]: https://github.com/oss-review-toolkit/ort/blob/f6c9386/analyzer/src/funTest/assets/projects/external/multi-kotlin-project/build.gradle.kts#L13 Signed-off-by: Sebastian Schuberth --- ...lti-kotlin-project-expected-output-cli.yml | 56 +++++++++---------- ...ti-kotlin-project-expected-output-core.yml | 56 +++++++++---------- .../managers/utils/GradleDependencyHandler.kt | 2 +- .../managers/utils/MavenDependencyHandler.kt | 27 +++++---- .../kotlin/managers/utils/MavenSupport.kt | 31 ++++++---- .../utils/GradleDependencyHandlerTest.kt | 2 +- .../utils/MavenDependencyHandlerTest.kt | 12 ++-- 7 files changed, 102 insertions(+), 84 deletions(-) diff --git a/analyzer/src/funTest/assets/projects/external/multi-kotlin-project-expected-output-cli.yml b/analyzer/src/funTest/assets/projects/external/multi-kotlin-project-expected-output-cli.yml index 968833b7f527c..2ceff214a491a 100644 --- a/analyzer/src/funTest/assets/projects/external/multi-kotlin-project-expected-output-cli.yml +++ b/analyzer/src/funTest/assets/projects/external/multi-kotlin-project-expected-output-cli.yml @@ -199,12 +199,12 @@ packages: description: "Java Native Access" homepage_url: "https://github.com/java-native-access/jna" binary_artifact: - url: "https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.jar" + url: "https://jcenter.bintray.com/net/java/dev/jna/jna/5.6.0/jna-5.6.0.jar" hash: value: "330f2244e9030119ab3030fc3fededc86713d9cc" algorithm: "SHA-1" source_artifact: - url: "https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/5.6.0/jna-5.6.0-sources.jar" + url: "https://jcenter.bintray.com/net/java/dev/jna/jna/5.6.0/jna-5.6.0-sources.jar" hash: value: "754dbdc797e1decd2cb1f1a26104e2460c414768" algorithm: "SHA-1" @@ -231,12 +231,12 @@ packages: description: "A set of annotations used for code inspection support and code documentation." homepage_url: "http://www.jetbrains.org" binary_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar" + url: "https://jcenter.bintray.com/org/jetbrains/annotations/13.0/annotations-13.0.jar" hash: value: "919f0dfe192fb4e063e7dacadee7f8bb9a2672a9" algorithm: "SHA-1" source_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0-sources.jar" + url: "https://jcenter.bintray.com/org/jetbrains/annotations/13.0/annotations-13.0-sources.jar" hash: value: "5991ca87ef1fb5544943d9abc5a9a37583fabe03" algorithm: "SHA-1" @@ -263,12 +263,12 @@ packages: description: "Fork of trove4j library used in IntelliJ Platform." homepage_url: "https://github.com/JetBrains/intellij-deps-trove4j" binary_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.jar" + url: "https://jcenter.bintray.com/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.jar" hash: value: "3afb14d5f9ceb459d724e907a21145e8ff394f02" algorithm: "SHA-1" source_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330-sources.jar" + url: "https://jcenter.bintray.com/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330-sources.jar" hash: value: "5fc2da70caaebed24734161c6c33648a15396917" algorithm: "SHA-1" @@ -295,12 +295,12 @@ packages: description: "Kotlin Compiler (embeddable)" homepage_url: "https://kotlinlang.org/" binary_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.7.20/kotlin-compiler-embeddable-1.7.20.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.7.20/kotlin-compiler-embeddable-1.7.20.jar" hash: value: "8db18559a581dd2c36ddfd5046af145650f5b126" algorithm: "SHA-1" source_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.7.20/kotlin-compiler-embeddable-1.7.20-sources.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.7.20/kotlin-compiler-embeddable-1.7.20-sources.jar" hash: value: "f5c5882a804210d420dfc79620946ac9c7758503" algorithm: "SHA-1" @@ -327,12 +327,12 @@ packages: description: "Kotlin Daemon (for using with embeddable compiler)" homepage_url: "https://kotlinlang.org/" binary_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.7.20/kotlin-daemon-embeddable-1.7.20.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.7.20/kotlin-daemon-embeddable-1.7.20.jar" hash: value: "1e24355adad8d529d75d5b19eab55484057431ba" algorithm: "SHA-1" source_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.7.20/kotlin-daemon-embeddable-1.7.20-sources.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.7.20/kotlin-daemon-embeddable-1.7.20-sources.jar" hash: value: "ff4d7412cc8b4757b24f7b06cbddc47579bc8ddb" algorithm: "SHA-1" @@ -359,12 +359,12 @@ packages: description: "Kotlin KLIB Library Commonizer (for using with embeddable compiler)" homepage_url: "https://kotlinlang.org/" binary_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.7.20/kotlin-klib-commonizer-embeddable-1.7.20.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.7.20/kotlin-klib-commonizer-embeddable-1.7.20.jar" hash: value: "aacfcd32be9b403a37e8435a4b08edfba241ea59" algorithm: "SHA-1" source_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.7.20/kotlin-klib-commonizer-embeddable-1.7.20-sources.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.7.20/kotlin-klib-commonizer-embeddable-1.7.20-sources.jar" hash: value: "5b8f86fea035328fc9e8c660773037a3401ce25f" algorithm: "SHA-1" @@ -391,12 +391,12 @@ packages: description: "Kotlin Full Reflection Library" homepage_url: "https://kotlinlang.org/" binary_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.7.20/kotlin-reflect-1.7.20.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-reflect/1.7.20/kotlin-reflect-1.7.20.jar" hash: value: "12b2501e33bb6373e8e347c86d85481863629381" algorithm: "SHA-1" source_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.7.20/kotlin-reflect-1.7.20-sources.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-reflect/1.7.20/kotlin-reflect-1.7.20-sources.jar" hash: value: "855e2c1a097a0a845d382eed1136e2f650d4a7ea" algorithm: "SHA-1" @@ -423,12 +423,12 @@ packages: description: "Kotlin Script Runtime" homepage_url: "https://kotlinlang.org/" binary_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-runtime/1.7.20/kotlin-script-runtime-1.7.20.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-script-runtime/1.7.20/kotlin-script-runtime-1.7.20.jar" hash: value: "0bcd1cc6f865e632550357fcc59f5ffd532615a8" algorithm: "SHA-1" source_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-runtime/1.7.20/kotlin-script-runtime-1.7.20-sources.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-script-runtime/1.7.20/kotlin-script-runtime-1.7.20-sources.jar" hash: value: "abc7ecfd92ea677825899180807736acdfbb89b6" algorithm: "SHA-1" @@ -455,12 +455,12 @@ packages: description: "Kotlin Scripting Common" homepage_url: "https://kotlinlang.org/" binary_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.7.20/kotlin-scripting-common-1.7.20.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-common/1.7.20/kotlin-scripting-common-1.7.20.jar" hash: value: "88ed4f0a92a48e12d2d4596f26967400e390648c" algorithm: "SHA-1" source_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.7.20/kotlin-scripting-common-1.7.20-sources.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-common/1.7.20/kotlin-scripting-common-1.7.20-sources.jar" hash: value: "9a3d8c1f7657df2adf3fc58a32a82a6ef5b535c1" algorithm: "SHA-1" @@ -487,12 +487,12 @@ packages: description: "Kotlin Scripting Compiler Plugin for embeddable compiler" homepage_url: "https://kotlinlang.org/" binary_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.7.20/kotlin-scripting-compiler-embeddable-1.7.20.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.7.20/kotlin-scripting-compiler-embeddable-1.7.20.jar" hash: value: "a7f1cf58156c0e066411f4f7fd26cb8c63e11aca" algorithm: "SHA-1" source_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.7.20/kotlin-scripting-compiler-embeddable-1.7.20-sources.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.7.20/kotlin-scripting-compiler-embeddable-1.7.20-sources.jar" hash: value: "cf914e97219efe1f1db1964a30c16190c9b4ac6f" algorithm: "SHA-1" @@ -519,12 +519,12 @@ packages: description: "Kotlin Compiler Infrastructure for Scripting for embeddable compiler" homepage_url: "https://kotlinlang.org/" binary_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.7.20/kotlin-scripting-compiler-impl-embeddable-1.7.20.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.7.20/kotlin-scripting-compiler-impl-embeddable-1.7.20.jar" hash: value: "9a40e21c6710aca281217963ef137c7df945e1bc" algorithm: "SHA-1" source_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.7.20/kotlin-scripting-compiler-impl-embeddable-1.7.20-sources.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.7.20/kotlin-scripting-compiler-impl-embeddable-1.7.20-sources.jar" hash: value: "691afe60d8554ac40e881a374bcf2feb17a9e779" algorithm: "SHA-1" @@ -551,12 +551,12 @@ packages: description: "Kotlin Scripting Jvm" homepage_url: "https://kotlinlang.org/" binary_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.7.20/kotlin-scripting-jvm-1.7.20.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-jvm/1.7.20/kotlin-scripting-jvm-1.7.20.jar" hash: value: "c79de17329ea8f7c7d200063145d5694ca3f6786" algorithm: "SHA-1" source_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.7.20/kotlin-scripting-jvm-1.7.20-sources.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-jvm/1.7.20/kotlin-scripting-jvm-1.7.20-sources.jar" hash: value: "644b7c49cea4581e4a1d1bcb4b50a86640055c17" algorithm: "SHA-1" @@ -583,12 +583,12 @@ packages: description: "Kotlin Standard Library for JVM" homepage_url: "https://kotlinlang.org/" binary_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.7.20/kotlin-stdlib-1.7.20.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.7.20/kotlin-stdlib-1.7.20.jar" hash: value: "726594ea9ba2beb2ee113647fefa9a10f9fabe52" algorithm: "SHA-1" source_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.7.20/kotlin-stdlib-1.7.20-sources.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.7.20/kotlin-stdlib-1.7.20-sources.jar" hash: value: "e31859676e9dfc3dda0d830fdf759eaf237bd86d" algorithm: "SHA-1" @@ -615,12 +615,12 @@ packages: description: "Kotlin Common Standard Library" homepage_url: "https://kotlinlang.org/" binary_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.7.20/kotlin-stdlib-common-1.7.20.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.7.20/kotlin-stdlib-common-1.7.20.jar" hash: value: "e15351bdaf9fa06f009be5da7a202e4184f00ae3" algorithm: "SHA-1" source_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.7.20/kotlin-stdlib-common-1.7.20-sources.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.7.20/kotlin-stdlib-common-1.7.20-sources.jar" hash: value: "0bbe07d9cf0399e1ec51de98f86c22da6aee0d5b" algorithm: "SHA-1" diff --git a/analyzer/src/funTest/assets/projects/external/multi-kotlin-project-expected-output-core.yml b/analyzer/src/funTest/assets/projects/external/multi-kotlin-project-expected-output-core.yml index aaab31ebf9b39..27f6783cb9b3b 100644 --- a/analyzer/src/funTest/assets/projects/external/multi-kotlin-project-expected-output-core.yml +++ b/analyzer/src/funTest/assets/projects/external/multi-kotlin-project-expected-output-core.yml @@ -177,12 +177,12 @@ packages: description: "Java Native Access" homepage_url: "https://github.com/java-native-access/jna" binary_artifact: - url: "https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.jar" + url: "https://jcenter.bintray.com/net/java/dev/jna/jna/5.6.0/jna-5.6.0.jar" hash: value: "330f2244e9030119ab3030fc3fededc86713d9cc" algorithm: "SHA-1" source_artifact: - url: "https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/5.6.0/jna-5.6.0-sources.jar" + url: "https://jcenter.bintray.com/net/java/dev/jna/jna/5.6.0/jna-5.6.0-sources.jar" hash: value: "754dbdc797e1decd2cb1f1a26104e2460c414768" algorithm: "SHA-1" @@ -209,12 +209,12 @@ packages: description: "A set of annotations used for code inspection support and code documentation." homepage_url: "http://www.jetbrains.org" binary_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar" + url: "https://jcenter.bintray.com/org/jetbrains/annotations/13.0/annotations-13.0.jar" hash: value: "919f0dfe192fb4e063e7dacadee7f8bb9a2672a9" algorithm: "SHA-1" source_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0-sources.jar" + url: "https://jcenter.bintray.com/org/jetbrains/annotations/13.0/annotations-13.0-sources.jar" hash: value: "5991ca87ef1fb5544943d9abc5a9a37583fabe03" algorithm: "SHA-1" @@ -241,12 +241,12 @@ packages: description: "Fork of trove4j library used in IntelliJ Platform." homepage_url: "https://github.com/JetBrains/intellij-deps-trove4j" binary_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.jar" + url: "https://jcenter.bintray.com/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.jar" hash: value: "3afb14d5f9ceb459d724e907a21145e8ff394f02" algorithm: "SHA-1" source_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330-sources.jar" + url: "https://jcenter.bintray.com/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330-sources.jar" hash: value: "5fc2da70caaebed24734161c6c33648a15396917" algorithm: "SHA-1" @@ -273,12 +273,12 @@ packages: description: "Kotlin Compiler (embeddable)" homepage_url: "https://kotlinlang.org/" binary_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.7.20/kotlin-compiler-embeddable-1.7.20.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.7.20/kotlin-compiler-embeddable-1.7.20.jar" hash: value: "8db18559a581dd2c36ddfd5046af145650f5b126" algorithm: "SHA-1" source_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.7.20/kotlin-compiler-embeddable-1.7.20-sources.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.7.20/kotlin-compiler-embeddable-1.7.20-sources.jar" hash: value: "f5c5882a804210d420dfc79620946ac9c7758503" algorithm: "SHA-1" @@ -305,12 +305,12 @@ packages: description: "Kotlin Daemon (for using with embeddable compiler)" homepage_url: "https://kotlinlang.org/" binary_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.7.20/kotlin-daemon-embeddable-1.7.20.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.7.20/kotlin-daemon-embeddable-1.7.20.jar" hash: value: "1e24355adad8d529d75d5b19eab55484057431ba" algorithm: "SHA-1" source_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.7.20/kotlin-daemon-embeddable-1.7.20-sources.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.7.20/kotlin-daemon-embeddable-1.7.20-sources.jar" hash: value: "ff4d7412cc8b4757b24f7b06cbddc47579bc8ddb" algorithm: "SHA-1" @@ -337,12 +337,12 @@ packages: description: "Kotlin KLIB Library Commonizer (for using with embeddable compiler)" homepage_url: "https://kotlinlang.org/" binary_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.7.20/kotlin-klib-commonizer-embeddable-1.7.20.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.7.20/kotlin-klib-commonizer-embeddable-1.7.20.jar" hash: value: "aacfcd32be9b403a37e8435a4b08edfba241ea59" algorithm: "SHA-1" source_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.7.20/kotlin-klib-commonizer-embeddable-1.7.20-sources.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.7.20/kotlin-klib-commonizer-embeddable-1.7.20-sources.jar" hash: value: "5b8f86fea035328fc9e8c660773037a3401ce25f" algorithm: "SHA-1" @@ -369,12 +369,12 @@ packages: description: "Kotlin Full Reflection Library" homepage_url: "https://kotlinlang.org/" binary_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.7.20/kotlin-reflect-1.7.20.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-reflect/1.7.20/kotlin-reflect-1.7.20.jar" hash: value: "12b2501e33bb6373e8e347c86d85481863629381" algorithm: "SHA-1" source_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.7.20/kotlin-reflect-1.7.20-sources.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-reflect/1.7.20/kotlin-reflect-1.7.20-sources.jar" hash: value: "855e2c1a097a0a845d382eed1136e2f650d4a7ea" algorithm: "SHA-1" @@ -401,12 +401,12 @@ packages: description: "Kotlin Script Runtime" homepage_url: "https://kotlinlang.org/" binary_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-runtime/1.7.20/kotlin-script-runtime-1.7.20.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-script-runtime/1.7.20/kotlin-script-runtime-1.7.20.jar" hash: value: "0bcd1cc6f865e632550357fcc59f5ffd532615a8" algorithm: "SHA-1" source_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-runtime/1.7.20/kotlin-script-runtime-1.7.20-sources.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-script-runtime/1.7.20/kotlin-script-runtime-1.7.20-sources.jar" hash: value: "abc7ecfd92ea677825899180807736acdfbb89b6" algorithm: "SHA-1" @@ -433,12 +433,12 @@ packages: description: "Kotlin Scripting Common" homepage_url: "https://kotlinlang.org/" binary_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.7.20/kotlin-scripting-common-1.7.20.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-common/1.7.20/kotlin-scripting-common-1.7.20.jar" hash: value: "88ed4f0a92a48e12d2d4596f26967400e390648c" algorithm: "SHA-1" source_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.7.20/kotlin-scripting-common-1.7.20-sources.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-common/1.7.20/kotlin-scripting-common-1.7.20-sources.jar" hash: value: "9a3d8c1f7657df2adf3fc58a32a82a6ef5b535c1" algorithm: "SHA-1" @@ -465,12 +465,12 @@ packages: description: "Kotlin Scripting Compiler Plugin for embeddable compiler" homepage_url: "https://kotlinlang.org/" binary_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.7.20/kotlin-scripting-compiler-embeddable-1.7.20.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.7.20/kotlin-scripting-compiler-embeddable-1.7.20.jar" hash: value: "a7f1cf58156c0e066411f4f7fd26cb8c63e11aca" algorithm: "SHA-1" source_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.7.20/kotlin-scripting-compiler-embeddable-1.7.20-sources.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.7.20/kotlin-scripting-compiler-embeddable-1.7.20-sources.jar" hash: value: "cf914e97219efe1f1db1964a30c16190c9b4ac6f" algorithm: "SHA-1" @@ -497,12 +497,12 @@ packages: description: "Kotlin Compiler Infrastructure for Scripting for embeddable compiler" homepage_url: "https://kotlinlang.org/" binary_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.7.20/kotlin-scripting-compiler-impl-embeddable-1.7.20.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.7.20/kotlin-scripting-compiler-impl-embeddable-1.7.20.jar" hash: value: "9a40e21c6710aca281217963ef137c7df945e1bc" algorithm: "SHA-1" source_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.7.20/kotlin-scripting-compiler-impl-embeddable-1.7.20-sources.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.7.20/kotlin-scripting-compiler-impl-embeddable-1.7.20-sources.jar" hash: value: "691afe60d8554ac40e881a374bcf2feb17a9e779" algorithm: "SHA-1" @@ -529,12 +529,12 @@ packages: description: "Kotlin Scripting Jvm" homepage_url: "https://kotlinlang.org/" binary_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.7.20/kotlin-scripting-jvm-1.7.20.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-jvm/1.7.20/kotlin-scripting-jvm-1.7.20.jar" hash: value: "c79de17329ea8f7c7d200063145d5694ca3f6786" algorithm: "SHA-1" source_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.7.20/kotlin-scripting-jvm-1.7.20-sources.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-jvm/1.7.20/kotlin-scripting-jvm-1.7.20-sources.jar" hash: value: "644b7c49cea4581e4a1d1bcb4b50a86640055c17" algorithm: "SHA-1" @@ -561,12 +561,12 @@ packages: description: "Kotlin Standard Library for JVM" homepage_url: "https://kotlinlang.org/" binary_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.7.20/kotlin-stdlib-1.7.20.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.7.20/kotlin-stdlib-1.7.20.jar" hash: value: "726594ea9ba2beb2ee113647fefa9a10f9fabe52" algorithm: "SHA-1" source_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.7.20/kotlin-stdlib-1.7.20-sources.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.7.20/kotlin-stdlib-1.7.20-sources.jar" hash: value: "e31859676e9dfc3dda0d830fdf759eaf237bd86d" algorithm: "SHA-1" @@ -593,12 +593,12 @@ packages: description: "Kotlin Common Standard Library" homepage_url: "https://kotlinlang.org/" binary_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.7.20/kotlin-stdlib-common-1.7.20.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.7.20/kotlin-stdlib-common-1.7.20.jar" hash: value: "e15351bdaf9fa06f009be5da7a202e4184f00ae3" algorithm: "SHA-1" source_artifact: - url: "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.7.20/kotlin-stdlib-common-1.7.20-sources.jar" + url: "https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.7.20/kotlin-stdlib-common-1.7.20-sources.jar" hash: value: "0bbe07d9cf0399e1ec51de98f86c22da6aee0d5b" algorithm: "SHA-1" diff --git a/analyzer/src/main/kotlin/managers/utils/GradleDependencyHandler.kt b/analyzer/src/main/kotlin/managers/utils/GradleDependencyHandler.kt index 71a01db4b0f31..f1d8491e25912 100644 --- a/analyzer/src/main/kotlin/managers/utils/GradleDependencyHandler.kt +++ b/analyzer/src/main/kotlin/managers/utils/GradleDependencyHandler.kt @@ -99,7 +99,7 @@ class GradleDependencyHandler( ) return runCatching { - maven.parsePackage(artifact, repositories) + maven.parsePackage(artifact, repositories, useArtifactRepositories = false) }.getOrElse { e -> when (e) { is ProjectBuildingException, is RepositoryException -> { diff --git a/analyzer/src/main/kotlin/managers/utils/MavenDependencyHandler.kt b/analyzer/src/main/kotlin/managers/utils/MavenDependencyHandler.kt index 7ba34e30f3b29..077660a622282 100644 --- a/analyzer/src/main/kotlin/managers/utils/MavenDependencyHandler.kt +++ b/analyzer/src/main/kotlin/managers/utils/MavenDependencyHandler.kt @@ -94,17 +94,22 @@ class MavenDependencyHandler( if (isLocalProject(dependency)) return null return runCatching { - support.parsePackage(dependency.artifact, dependency.repositories, sbtMode = sbtMode).let { pkg -> - // There is the corner case that a dependency references a project, but in a different version than - // the one used by the local build. Then, this dependency is actually a package, but Maven's - // resolution mechanism might prefer using the project. Therefore, the check whether the dependency - // is a project must be done after the package resolution again. - if (isLocalProject(pkg.id)) { - localProjectIds += dependency.identifier() - null - } else { - pkg - } + val pkg = support.parsePackage( + dependency.artifact, + dependency.repositories, + useArtifactRepositories = true, + sbtMode = sbtMode + ) + + // There is the corner case that a dependency references a project, but in a different version than + // the one used by the local build. Then, this dependency is actually a package, but Maven's + // resolution mechanism might prefer using the project. Therefore, the check whether the dependency + // is a project must be done after the package resolution again. + if (isLocalProject(pkg.id)) { + localProjectIds += dependency.identifier() + null + } else { + pkg } }.onFailure { e -> e.showStackTrace() diff --git a/analyzer/src/main/kotlin/managers/utils/MavenSupport.kt b/analyzer/src/main/kotlin/managers/utils/MavenSupport.kt index 840ddcdd54882..033d1e165a933 100644 --- a/analyzer/src/main/kotlin/managers/utils/MavenSupport.kt +++ b/analyzer/src/main/kotlin/managers/utils/MavenSupport.kt @@ -489,7 +489,11 @@ class MavenSupport(private val workspaceReader: WorkspaceReader) { } } - private fun requestRemoteArtifact(artifact: Artifact, repositories: List): RemoteArtifact { + private fun requestRemoteArtifact( + artifact: Artifact, + repositories: List, + useArtifactRepositories: Boolean + ): RemoteArtifact { remoteArtifactCache.read(artifact.toString())?.let { logger.debug { "Reading remote artifact for '$artifact' from disk cache." } return yamlMapper.readValue(it) @@ -501,11 +505,15 @@ class MavenSupport(private val workspaceReader: WorkspaceReader) { val repositoryConnectorProvider = containerLookup() val transporterProvider = containerLookup() - // Create an artifact descriptor to get the list of repositories from the related POM file. - val artifactDescriptorRequest = ArtifactDescriptorRequest(artifact, repositories, "project") - val artifactDescriptorResult = repoSystem - .readArtifactDescriptor(repositorySystemSession, artifactDescriptorRequest) - val allRepositories = (artifactDescriptorResult.repositories + repositories).toSet() + val allRepositories = if (useArtifactRepositories) { + // Create an artifact descriptor to get the list of repositories from the related POM file. + val artifactDescriptorRequest = ArtifactDescriptorRequest(artifact, repositories, "project") + val artifactDescriptorResult = repoSystem + .readArtifactDescriptor(repositorySystemSession, artifactDescriptorRequest) + (repositories + artifactDescriptorResult.repositories).distinct() + } else { + repositories + } // Filter out local repositories, as remote artifacts should never point to files on the local disk. val remoteRepositories = allRepositories.filterNot { @@ -644,8 +652,11 @@ class MavenSupport(private val workspaceReader: WorkspaceReader) { * below a "target" subdirectory of the actual project. */ fun parsePackage( - artifact: Artifact, repositories: List, - localProjects: Map = emptyMap(), sbtMode: Boolean = false + artifact: Artifact, + repositories: List, + useArtifactRepositories: Boolean, + localProjects: Map = emptyMap(), + sbtMode: Boolean = false ): Package { val mavenRepositorySystem = containerLookup() val projectBuilder = containerLookup() @@ -695,7 +706,7 @@ class MavenSupport(private val workspaceReader: WorkspaceReader) { val binaryRemoteArtifact = localProject?.let { RemoteArtifact.EMPTY - } ?: requestRemoteArtifact(artifact, repositories) + } ?: requestRemoteArtifact(artifact, repositories, useArtifactRepositories) val isBinaryArtifactModified = isArtifactModified(artifact, binaryRemoteArtifact) @@ -707,7 +718,7 @@ class MavenSupport(private val workspaceReader: WorkspaceReader) { DefaultArtifact(it.groupId, it.artifactId, "sources", "jar", it.version) } - requestRemoteArtifact(sourceArtifact, repositories) + requestRemoteArtifact(sourceArtifact, repositories, useArtifactRepositories) } } diff --git a/analyzer/src/test/kotlin/managers/utils/GradleDependencyHandlerTest.kt b/analyzer/src/test/kotlin/managers/utils/GradleDependencyHandlerTest.kt index ffc0d0813ae96..4924098526ea9 100644 --- a/analyzer/src/test/kotlin/managers/utils/GradleDependencyHandlerTest.kt +++ b/analyzer/src/test/kotlin/managers/utils/GradleDependencyHandlerTest.kt @@ -373,7 +373,7 @@ private fun createGraphBuilder(): DependencyGraphBuilder { private fun createMavenSupport(): MavenSupport { val maven = mockk() val slotArtifact = slot() - every { maven.parsePackage(capture(slotArtifact), remoteRepositories) } answers { + every { maven.parsePackage(capture(slotArtifact), remoteRepositories, useArtifactRepositories = false) } answers { val artifact = slotArtifact.captured val id = Identifier("Maven", artifact.groupId, artifact.artifactId, artifact.version) Package( diff --git a/analyzer/src/test/kotlin/managers/utils/MavenDependencyHandlerTest.kt b/analyzer/src/test/kotlin/managers/utils/MavenDependencyHandlerTest.kt index 5cea95b7f2580..f5bae50f233d4 100644 --- a/analyzer/src/test/kotlin/managers/utils/MavenDependencyHandlerTest.kt +++ b/analyzer/src/test/kotlin/managers/utils/MavenDependencyHandlerTest.kt @@ -142,7 +142,7 @@ class MavenDependencyHandlerTest : WordSpec({ val handler = createHandler() every { dependency.repositories } returns repos - every { handler.support.parsePackage(artifact, repos) } returns pkg + every { handler.support.parsePackage(artifact, repos, useArtifactRepositories = true) } returns pkg handler.createPackage(dependency, issues) shouldBe pkg issues should beEmpty() @@ -158,7 +158,9 @@ class MavenDependencyHandlerTest : WordSpec({ val handler = createHandler(sbtMode = true) every { dependency.repositories } returns repos - every { handler.support.parsePackage(artifact, repos, sbtMode = true) } returns pkg + every { + handler.support.parsePackage(artifact, repos, useArtifactRepositories = true, sbtMode = true) + } returns pkg handler.createPackage(dependency, issues) shouldBe pkg issues should beEmpty() @@ -183,7 +185,7 @@ class MavenDependencyHandlerTest : WordSpec({ val handler = createHandler() every { dependency.repositories } returns repos - every { handler.support.parsePackage(artifact, repos) } returns pkg + every { handler.support.parsePackage(artifact, repos, useArtifactRepositories = true) } returns pkg handler.createPackage(dependency, mutableListOf()) should beNull() } @@ -197,7 +199,7 @@ class MavenDependencyHandlerTest : WordSpec({ val handler = createHandler() every { dependency.repositories } returns repos - every { handler.support.parsePackage(artifact, repos) } returns pkg + every { handler.support.parsePackage(artifact, repos, useArtifactRepositories = true) } returns pkg handler.createPackage(dependency, mutableListOf()) @@ -217,7 +219,7 @@ class MavenDependencyHandlerTest : WordSpec({ val handler = createHandler() every { dependency.repositories } returns repos - every { handler.support.parsePackage(artifact, repos) } throws exception + every { handler.support.parsePackage(artifact, repos, useArtifactRepositories = true) } throws exception handler.createPackage(dependency, issues) should beNull()