Java-приложение, которое я разрабатываю, должно работать на серверах, к которым у меня нет прямого доступа. Иногда возникают конфликты зависимостей. Я имею в виду, что на некоторых серверах приложение работает идеально, а на других такое же приложение не работает. И ошибки указывают на конфликт версий библиотек. Я хотел бы, чтобы приложение информировало о конфликте версии библиотеки, а не просто вылетало с NoSuchFieldError
, NoSuchMethodError
, NoClassDefFoundError
и т. д. Я могу получить список библиотек на платформе сборки приложения с помощью mvn dependency:tree
Итак, мне нужно, чтобы приложение считывало версии библиотек на платформе, на которой оно работает , сравните его со списком библиотек на платформе сборки и сообщите о несоответствии версий. Итак, как приложение может определять библиотеки во время выполнения? Или, может быть, есть более удобный способ автоматизировать обнаружение конфликтов зависимостей?
Как автоматизировать обнаружение конфликта зависимостей
Ответы (1)
Я считаю, что вам нужно решить эту проблему перед развертыванием. Вы не можете полагаться на Running Tool для сохранения. Поэтому я бы предложил решить их на гораздо более ранней стадии.
Если вы используете maven для управления зависимостями. Вы можете попробовать ниже:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.4.1</version>
<configuration>
<rules><dependencyConvergence/></rules>
</configuration>
</plugin>
</plugins>
затем
mvn enforcer:enforce
Вы можете прочитать этот хороший материал
person
Qingfei Yuan
schedule
14.06.2019
Спасибо. На самом деле у меня другая проблема. Я обновлю вопрос.
- person Loom; 14.06.2019