Как автоматизировать обнаружение конфликта зависимостей - PullRequest
0 голосов
/ 14 июня 2019

Ява-приложение, которое я разрабатываю, должно работать на серверах, к которым у меня нет прямого доступа. Иногда возникают конфликты зависимости. Я имею в виду, что на некоторых серверах приложение работает идеально, а на других - одно и то же. И ошибки указывают на конфликт версий библиотек. Мне бы хотелось, чтобы приложение сообщало о конфликте версий библиотеки, а не просто зависало при NoSuchFieldError, NoSuchMethodError, NoClassDefFoundError и т. Д. Я могу получить список библиотек на платформе разработки приложений с mvn dependency:tree Итак, мне нужно, чтобы приложение считывало версии библиотек на платформе, где оно работает, сравнивало их со списком библиотек на платформе сборки и сообщало о несовпадении версий. Итак, как приложение может определять библиотеки во время выполнения? Или, может быть, существует более удобный способ автоматизировать обнаружение конфликта зависимостей?

1 Ответ

0 голосов
/ 14 июня 2019

Полагаю, вам нужно решить проблему такого рода перед развертыванием.Вы не можете полагаться на 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

Вы можете прочитать это хороший материал

...