Проблема локального репозитория Maven с несколькими банками

#java #spring #maven #mockito #maven-plugin

Вопрос:

У меня есть локальный репозиторий Maven в C:Users<User_Name>.m2 каталоге. После получения «java.lang.Ошибка noSuchMethod…» исключение и проблема навигации в Интернете, я вижу на этой странице упоминание об удалении неиспользуемых версий jar из локального репозитория.

Мои вопросы таковы:

1. Когда я смотрю на C:Users<User_Name>.m2repositoryorgmockitomockito-core папку, там 52 папки с разными версиями. Я думаю, что это похоже на другие библиотеки jar. Итак, должны ли мы периодически очищать неиспользуемые банки? Или нам следует сохранить неиспользуемые версии библиотеки jar?

2. Если у меня есть только 3.0.0 версия mockito-core в моем pom.xml , как приложение использует или смешивает другие версии в локальном репозитории? Обычно, если у меня есть только одна mockito-core зависимость pom.xml , могут ли возникнуть какие-либо проблемы, как указано на этой странице (решение проблемы после удаления другой версии jar)?

Ответ №1:

1)

Вам не нужно вручную «очищать неиспользуемые банки» из локального репозитория maven. Как вы хотите решить, какая банка, какая версия не используется? Возможно, в вашем следующем проекте будет использоваться jar, который вы хотите удалить. Кто знает.

Если у вас достаточно места на диске, вы можете оставить свой локальный каталог репозитория maven нетронутым в течение многих лет. Если этот каталог станет слишком большим, я предлагаю вам удалить всю .m2 папку целиком. Затем в следующий раз, когда вы будете создавать проект, Maven автоматически загрузит все зависимости, необходимые вашему проекту.

Существует только один вариант использования, когда удаление локального репозитория maven может вызвать головную боль: если вы установили некоторые пользовательские банки вручную.

2)

Весьма возможно, что различные версии зависимостей, которые вы видите в своем локальном каталоге репозитория Maven, взяты из разных проектов, созданных вами ранее.

В любом случае, вы можете отобразить свой эффективный pon с помощью плагина справки Apache Maven.

Комментарии:

1. Большое спасибо за ваши хорошие объяснения. На самом деле, мой подход похож на тот, о котором вы упомянули, когда места на диске недостаточно. Насколько я знаю, при удалении папки m2 и восстановлении зависимостей maven все необходимые библиотеки загружаются снова. Единственной проблемой могут быть банки, которые устанавливаются вручную, а не pom.xml. Это все правда?

2. Когда существует несколько версий jar (например mockito-core , jar), если существует только одна зависимость этого mockito-core в pom.xml, как приложение может использовать другую версию mockito-core ?

3. ДА. Поэтому перед удалением локального репозитория maven создайте резервную копию банок, установленных вручную с помощью mvn install .

4. Пожалуйста, задайте один вопрос по каждой теме. Если мой ответ помог вам, то примите его как решение и откройте новую тему с вашим новым вопросом.

5. Оба вопроса связаны, и ваши ответы все еще не помогли мне полностью. Прежде чем отметить как ответ, почему вы разъясняете мне вторые пункты («… Когда существует несколько версий jar …»)?