#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 …»)?