Как работает кнопка 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
записка Аскера для будущих читателей
этот ответ не полностью объяснил поведение кнопки реимпорта, поэтому я собираюсь добавить свои наблюдения здесь для потомков.
кажется, что-то происходит с кэшами 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 изменен.