Почему Gradle не может разрешить org.connectbot.jbcrypt:jbcrypt:1.0.0 из центрального репозитория Maven?

#maven #jenkins #gradle #jenkins-job-dsl #jbcrypt

Вопрос:

Я использую Gradle 6.9, и вот мой файл build.gradle:

 plugins {
    id "groovy"
    id "java"
}

group "com.matthiasdenu"
version "1.0-SNAPSHOT"

repositories {
    mavenCentral()
    maven {
        url 'https://repo.jenkins-ci.org/releases/'
    }
}

ext {
    jobDslVersion = "1.77"
    jenkinsVersion = "2.252"
}

sourceSets {
    jobs {
        groovy {
            srcDirs "jobs"
            compileClasspath  = main.compileClasspath
        }
        compileClasspath  = sourceSets.main.output
        runtimeClasspath  = sourceSets.main.output
    }
}

dependencies {
    compile("org.jenkins-ci.main:jenkins-war:${jenkinsVersion}"){
        // https://github.com/sheehan/job-dsl-gradle-example/issues/87
        exclude group: "org.jenkins-ci.ui", module: "bootstrap"
    }
}

test {
    useJUnitPlatform()
}
 

Это сообщение об ошибке, которое я получаю:

 Execution failed for task ':compileTestGroovy'.
> Could not resolve all files for configuration ':testCompileClasspath'.
   > Could not find org.connectbot.jbcrypt:jbcrypt:1.0.0.
     Searched in the following locations:
       - https://repo.maven.apache.org/maven2/org/connectbot/jbcrypt/jbcrypt/1.0.0/jbcrypt-1.0.0.pom
       - https://repo.jenkins-ci.org/releases/org/connectbot/jbcrypt/jbcrypt/1.0.0/jbcrypt-1.0.0.pom
     Required by:
         project : > org.jenkins-ci.main:jenkins-war:2.252 > org.jenkins-ci.main:jenkins-core:2.252

Possible solution:
 - Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/userguide/declaring_repositories.html 
 

Что странно, так это то, что артефакт 1.0.0 не отображается на https://repo.maven.apache.org/maven2/org/connectbot/jbcrypt/. Я также заметил, что URL-адреса тоже не совсем совпадают. Например, если я попытаюсь получить v1.0.1, это тоже не разрешится, потому что он ожидает дополнительного «jbcrypt» для имени группы.

У меня есть эта проблема даже при использовании последней версии jenkins-war (2.304).

Что происходит?

Комментарии:

1. Версия 1.0.0 не может быть доступна, потому что существует только 1.0.1 и т.д… В этом-то и проблема. Вы должны использовать другую версию.

Ответ №1:

Вы должны добавить репозиторий Дженкинса public в свою конфигурацию. Он содержит все библиотеки, доступные в releases репозитории, и все необходимые зависимости.

Файл существует: https://repo.jenkins-ci.org/public/org/connectbot/jbcrypt/jbcrypt/1.0.0/jbcrypt-1.0.0.jar

 repositories {
    mavenCentral()
    maven {
        url 'https://repo.jenkins-ci.org/public/'
    }
}