2017-01-05 8 views
0

Я столкнулся с проблемой, когда я не могу запустить весенний загрузочный сервер из-за той же проблемы, указанной в этом вопросе:Принудительный проект загрузки maven для использования более старой версии зависимости вместо новой версии из другой зависимости

How to set up Spring Boot and log4j2 properly?

Я встречая этот сценарий, потому что проект весной загрузки имеет зависимость от баночки, которая включает в elasticsearch, которая включает в себя новую версию SLF4J, которая не совместим с пружинным ботинке

Я попытался рекомендуемое решение путем внедрения каждого исключения в elasticsear ch, возможно, но по какой-то причине новая версия продолжает подниматься. Я не могу заставить проект весенней загрузки игнорировать пакеты регистрации, используемые проектом elasticsearch.

Вот мой П для проекта весны-загрузки, см зависимости для problematic.project.import: http://pastebin.com/Yeq2qk9Y

Вот П для проекта, который импортируется в проект весной загрузок: http://pastebin.com/gknmf6Tt

ошибка я получаю:

Caused by: java.lang.NoSuchMethodError: org.apache.logging.log4j.core.config.ConfigurationFactory.getConfiguration(Lorg/apache/logging/log4j/core/config/ConfigurationSource;)Lorg/apache/logging/log4j/core/config/Configuration; 
at org.springframework.boot.logging.log4j2.Log4J2LoggingSystem.loadConfiguration(Log4J2LoggingSystem.java:165) 
at org.springframework.boot.logging.log4j2.Log4J2LoggingSystem.loadDefaults(Log4J2LoggingSystem.java:148) 
at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(AbstractLoggingSystem.java:75) 
at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:50) 

Любые советы о том, как получить этот вопрос очищается? Возможно ли, чтобы две версии этого набора библиотек были загружены, причем каждый модуль не знал версию, которая им не нужна?

+0

Это выглядит как вариации этого вопроса: http://stackoverflow.com/questions/41195102/springboot-with-elasticsearch-5 -0-client-log4j2-errors – PaulNUK

ответ

0

Вы можете исключить циклические зависимости, используя <exclusions> тег в pom.xml так:

<dependency> 
    <groupId>sample.ProjectB</groupId> 
    <artifactId>Project-B</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <exclusions> 
    <exclusion> 
     <groupId>sample.ProjectE</groupId> <!-- Exclude Project-E from Project-B --> 
     <artifactId>Project-E</artifactId> 
    </exclusion> 
    </exclusions> 
</dependency> 

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

Вот ссылка для получения дополнительной информации:

https://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html

+0

Я считаю, что я это делаю. Можете ли вы взглянуть на попов? Правильно ли я делаю это? – kheck

 Смежные вопросы

  • Нет связанных вопросов^_^