Что вызывает исключение ModuleVersionNotFoundException в Gradle? - PullRequest
1 голос
/ 27 января 2020

Я использовал Gradle раньше, но никогда не настраивал его сам. Я использую openjdk 11.0.4 и установил Gradle, используя официальное руководство по установке, включая добавление его в путь windows. Все, что я делал, это добавил строку: '' '

implementation 'com.github.kittinunf.fuel:fuel:2.2.0'

в мой файл build.gradle. Я редактирую с использованием Intellij. Вот мой полный файл build.gradle:

plugins {
    id 'java'
    id 'org.jetbrains.kotlin.jvm' version '1.3.61'
}

group 'lastname'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
    testCompile group: 'junit', name: 'junit', version: '4.12'
    implementation 'com.github.kittinunf.fuel:fuel:2.2.0'
}

compileKotlin {
    kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
    kotlinOptions.jvmTarget = "1.8"
}

Когда я пытаюсь синхронизировать c проект, я получаю следующее из моей вкладки Gradle gradle_tab_view

Вывод сборки, который я получаю, таков:

4:20:29 PM: Executing tasks ':classes :testClasses'...

> Task :compileKotlin FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileKotlin'.
> Could not resolve all files for configuration ':compileClasspath'.
   > Could not find com.github.kittinunf.fuel:fuel:2.2.0.
     Searched in the following locations:
       - https://repo.maven.apache.org/maven2/com/github/kittinunf/fuel/fuel/2.2.0/fuel-2.2.0.pom
       - https://repo.maven.apache.org/maven2/com/github/kittinunf/fuel/fuel/2.2.0/fuel-2.2.0.jar
     Required by:
         project :

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 0s
1 actionable task: 1 executed
4:20:30 PM: Tasks execution finished ':classes :testClasses'.

Любой совет о том, что может быть сломано или, может быть, что явно не реализовано, будет оценен, это сильно помешало моему рабочему процессу, и я чувствую, что это должно будь что-то маленьким или глупым, что я пропускаю. Я чувствую, что воюю с Gradle, чтобы заставить Fuel работать в моем проекте.

1 Ответ

1 голос
/ 27 января 2020

Вывод ошибки означает, что Gradle не смог найти зависимость Fuel в двух местах. Оба местоположения находятся в https://repo.maven.apache.org/maven2/, который является Центральным Maven. Gradle смотрит в этот репозиторий, как вы сказали, через repositories { mavenCentral() }.

Однако Fuel не публикуется в Maven Central. Если вы используете поисковый сайт, такой как mvnrepository , вы увидите, где он был найден. В этом случае он говорит:

Примечание: этот артефакт находится в репозитории Spring Lib Release (https://repo.spring.io/libs-release/)

Но его вводит в заблуждение потому что это просто зеркало, потому что от этого зависит какая-то библиотека Spring. Если вы перейдете на страницу Github для Fuel, вы увидите, что в действительности она развернута на Jitpack . Поэтому правильное решение состоит в том, чтобы добавить Jitpack в список репозиториев в Gradle:

repositories {
    maven {
        name "jitpack"
        url "https://www.jitpack.io"
    }
}

Это не все так ясно со страницы Github, как это объясняется только в разделе для выпусков моментальных снимков. Но не так уж редко случается делать детективную работу, чтобы отследить, какой репозиторий использовать для заданной зависимости, когда его нет ни в одной из общих.

Кстати, testCompile устарела, и вы должны использовать testImplementation. А поскольку это проект Kotlin, вы, возможно, захотите в какой-то момент переключиться с Groovy DSL на Kotlin DSL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...