170 похожих чатов

Задача обновить версию log4j с 1.2.15 до 2.17.1, но она

тянется транзитивно.
В документации написано: "A version will always be honoured if it is declared in the current POM with a particular version - however, it should be noted that this will also affect other poms downstream if it is itself depended on using transitive dependencies."

На maven repository для артифакта последняя версия 1.2.17 и написано: "Note: This artifact was moved to: org.apache.logging.log4j » log4j-core", то есть прописать для меня этот способ не сработает, так как по сути уже другой артифакт.
Тогда я могу для через exclusions исключить из зависимости log4j и через dependencies добавить log4j-core версии 2.17.1. Это нормальное решение?

28 ответов

35 просмотров

Да, по-другому и не сделать. Убедись только, что ты заэкслудил все места, отуда log4j растёт. Их может быть несколько.

а из какого репозитория тогда брать 2 версию? несколько репозиториев?

В принципе, я так бы и делал. Но надо проверить. Наверняка возникнет проблема с теми библиотеками, из которых ты его исключишь. Они же зависят от него, он им нужен, чтобы логировать что-то.

лучше конечно зависеть на slf4j и подключать то что ниже по ситуации если библиотека сама хочет старый log4j то насильно отрезав и добавив - могут ждать сюрпризы...

Mikhail- Автор вопроса
Ivan
а из какого репозитория тогда брать 2 версию? неск...

Не совсем понял. Репозиторий один - maven repository, просто артифакт переехал. Насколько я понимаю, технически это уже новый артифакт

Mikhail- Автор вопроса
Ig
лучше конечно зависеть на slf4j и подключать то чт...

Да вроде бы slf4j и есть, но в одной из зависимостей log4j и потребовали обновить версию

Mikhail
Да вроде бы slf4j и есть, но в одной из зависимост...

а dependency:tree что говорит. ну вроде ты понял мой поинт - насколько там зависимость именно про API

Mikhail
Да вроде бы slf4j и есть, но в одной из зависимост...

Ну так сделать exclude на старую и добавить новую

Ig
лучше конечно зависеть на slf4j и подключать то чт...

Очень маленький шанс. Обратная совместимость у них хорошо развита

Mikhail- Автор вопроса
Ig
а dependency:tree что говорит. ну вроде ты понял ...

Что в зависимости условно уровня B есть некая one-nio (уровня C), которая зависит на log4j старый. Вот не знаю, сломается ли что-то, видимо это непросто понять, куча всего на библиотеке уровня B в приложении. Я так понимаю понять сломается ли что-то очень непросто

Mikhail- Автор вопроса
24/7 🎸
Ну так сделать exclude на старую и добавить новую

а если той библиотеке нужен старый log4j?

Mikhail
а если той библиотеке нужен старый log4j?

Так можно попробовать. Библиотека работает через log4j api

Mikhail- Автор вопроса
Evgenii Morozov
В принципе, я так бы и делал. Но надо проверить. Н...

@swswsw202 @spyroid Не взлетело приложение из-за того что нет log4j, что-то вроде такого Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘SomeService' defined in URL [jar:file:/path/SomeService.class]: Bean instantiation via constructor failed; nested exception is java.lang.NoClassDefFoundError: org/apache/log4j/Logger ... Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/Logger at package.SomeService.<clinit> (SomeService.java:15) …. Какие ещё есть варианты, кроме как обновить саму либу, которая зависит от log4j?

Mikhail- Автор вопроса
Grigory Pomadchin
"org.apache.logging.log4j" % "log4j-1.2-api" % "2....

Это же что-то для сборщика sbt, а у меня maven. Не совсем понял, где можно посмотреть?

Mikhail
@swswsw202 @spyroid Не взлетело приложение из-за т...

да никаких особо. Ну распилить на два приложения, запускать на разных jvm и общаться по rmi. Мама, я не наркоман.

Mikhail
Это же что-то для сборщика sbt, а у меня maven. Не...

да не поможет тебе, там сменилось имя артефакта во 2 версии, технически, с точки зрения мавена это вообще совершенно другой артефакт

Mikhail
@swswsw202 @spyroid Не взлетело приложение из-за т...

Нельзя просто так взять и поменять мажорную версию либы (т.е. 1 на 2)

Mikhail- Автор вопроса
Evgenii Morozov
А какая либа требует log4j у тебя?

Внутренняя библиотека банка

Mikhail
Внутренняя библиотека банка

А разве в таких случаях не гарантируется, что мейнтейнеры сидят в соседнем кабинете и могут её обновить?

Mikhail
Внутренняя библиотека банка

Другими словами её должны обновить те, кто её поддерживает. По-хорошему, твоему лиду надо об этом сказать, чтобы он поставил задачу вашим коллегам.

Mikhail- Автор вопроса
Vladimir Petraković
А разве в таких случаях не гарантируется, что мейн...

Возможно просто мы сидим на старой версии библиотеки. Тогда придётся ее обновлять, а это уже огромная задача, много всего переписать возможно придётся Видимо, к этому всё и идёт

Mikhail
Возможно просто мы сидим на старой версии библиоте...

Зачем вы её вообще обновляете, опасная уязвимость есть только в версии 2. В первой есть проблема, но она достаточно экзотическая.

Mikhail- Автор вопроса
Sergey Bezrukov
Зачем вы её вообще обновляете, опасная уязвимость ...

Ну вот требования такие поставили. Думаю проще доказать, что это не нужно, тому, кто предъявил требования, чем обновлять всю основную библиотеку приложения. Хотя может не проще, банк же

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта