Как хранилище влияет на путь к классу Gradle - PullRequest
0 голосов
/ 06 марта 2019

Мое приложение отказывается компилироваться после простого изменения URL-адреса связующего хранилища.

Хотелось перейти с nexus1 на nexus3, все прокси maven настроены, все внутренние артефакты загружены. Кажется, все загружается просто отлично. Пока он просто не откажется от компиляции, без каких-либо других изменений кода.

error: package org.apache.log4j does not exist
import org.apache.log4j.LogManager;
                       ^

Это странно, потому что на самом деле загружаются артефакты log4j, и после изменения ссылки на nexus1 все снова работает нормально. Сравниваются оба набора артефактов, загруженных обоими нексусами, и они абсолютно одинаковы.

Кроме того, log4j появляется первым на пути после

./gradlew dependencies

После отладки он сообщает:

[DEBUG] [ComponentAttributeMatcher] Selected match org.apache.logging.log4j:log4j-core:2.8.2 configuration default from candidates [org.apache.logging.log4j:log4j-core:2.8.2 configuration default] for {org.gradle.usage=java-api}
[DEBUG] ComponentAttributeMatcher] Selected match org.apache.logging.log4j:log4j-slf4j-impl:2.8.2 configuration default from candidates [org.apache.logging.log4j:log4j-slf4j-impl:2.8.2 configuration default] for {org.gradle.usage=java-api}
[DEBUG] [ComponentAttributeMatcher] Selected match org.apache.logging.log4j:log4j-api:2.8.2 configuration default from candidates [org.apache.logging.log4j:log4j-api:2.8.2 configuration default] for {org.gradle.usage=java-api}
[DEBUG] [ComponentAttributeMatcher] Selected match org.apache.logging.log4j:log4j-api:2.8.2 configuration runtime from candidates [org.apache.logging.log4j:log4j-api:2.8.2 configuration runtime] for {org.gradle.usage=java-api}

И это правильная версия.

Я не совсем понимаю, как изменение URL-адреса nexus может повлиять на компиляцию моего приложения?

Мы также выполняем подстановку зависимостей, так как приложение огромно, и это помогло перейти с log4j1 на log4j2

 substitute module('log4j:log4j') with module("org.apache.logging.log4j:log4j-1.2-api:${log4jVersion}")
...