Как работает кнопка Intellij reimport all Maven project?

как Intellij reimport все кнопки проекта maven на самом деле работает?

Im спрашивает Это, потому что я вижу, что: Intellij reimport поведение кнопки разные по сравнению с с -U аргумент, и мне непонятно, почему.

2 ответов


Я думаю, вы пропустите часть с локальным и удаленным репозиторием.

если вы запустите mvn -U это заставляет maven загружать все библиотеки из удаленного репозитория, который будет вашей компанией nexus или Maven repo. Главное отличие с -U и без это -U переопределит ваши локальные банки моментальных снимков с удаленными банками моментальных снимков. Локальные банки моментальных снимков пришли из install и remote пришли из команды deploy.

возникнет путаница с реимпортом. реимпорт будет загружать ваши местные банки вместо удаленных банок,особенно моментальных снимков. Вы можете включить Force update snapshot в меню maven, которое включит -U переключатель в intellij.

также дважды проверьте, что вы разделяете то же самое .каталог m2 с вашей системой maven и intellij maven. Вы можете увидеть это в файле настроек пользователя и сравнить его с командной строкой maven. Просто запустите mvn -X и проверьте настройки раздел.

[DEBUG] Reading global settings from /usr/local/Cellar/maven/3.3.9/libexec/conf/settings.xml
[DEBUG] Reading user settings from /Users/xbaran/.m2/settings.xml
[DEBUG] Reading global toolchains from /usr/local/Cellar/maven/3.3.9/libexec/conf/toolchains.xml
[DEBUG] Reading user toolchains from /Users/xbaran/.m2/toolchains.xml
[DEBUG] Using local repository at /Users/xbaran/.m2/repository

enter image description here


записка Аскера для будущих читателей

этот ответ не полностью объяснил поведение кнопки реимпорта, поэтому я собираюсь добавить свои наблюдения здесь для потомков.

кажется, что-то происходит с кэшами IntelliJ (т. е.idea folder). используя mvn clean install -U в терминале работает, как описано здесь, но не влияет на IntelliJ IDE; отсутствующие символы по-прежнему описываются как недостающий. Однако, если я нажму кнопку "magic reimport", эти отсутствующие символы успешно разрешатся.

Я могу только предположить, что кнопка реимпорта в основном инструктирует IntelliJ обновить свой собственный кэш, вот почему существует разница в поведении.


Если вы изменили pom.xml-файл, идея должна обновить структуру проекта. Например, если вы добавили туда еще несколько зависимостей, необходимо добавить его в качестве библиотеки проекта.

поэтому "Maven > Reimport" используется именно для этого - для реимпорта модуля maven. Он не вызывает никаких команд maven с любыми аргументами.

"Reimport All" делает то же самое, но для всех модулей maven в проекте.

в качестве примечания, вместо использования этих двух действия, в "Настройки > сборка, выполнение, развертывание > инструменты сборки > Maven > импорт" вы можете выбрать "импортировать проекты Maven автоматически". Это автоматически вызовет действие "Reimport", когда pom.xml изменен.