Как заставить IDEA брать зависимости с m2?
У меня мультимодульный проект (A, B например)
Проект A зависит от проекта B. Проект B зависит от некоторых внешних зависимостей, которые он шейдит и релоцирует. Но из-за того, что IDEA подгружает именно открытый проект, в проекте A внешняя зависимость не релоцирована и, следовательно, maven не может собрать проект А (но если я несмотря на ошибки напишу релоцированные импорты, всё будет ок).
Если нажать ПКМ по проекту B и сделать его игнорируемым, то ошибки также пропадут, поскольку IDEA будет брать зависимость из m2 с правильными pom.xml и классами.
Собственно хотелось бы узнать как можно справиться с этой проблемой.
Заранее спасибо
Дополнительно:
2024.1 Добавлена поддержка Maven Shade
Пока не работает с генериками, но и на том спасибо
Ответы:
mvn install утанавливает зависимости в локальный репозиторий.
Т.е. нужно собрать модуль B - mvn clean install - и он будет установлен в локальный репо
- Да, но у идеи есть такая фича: если открыт проект, который является зависимостью другого открытого проекта, то идея будет брать классы для него именно из открытого проекта, а не с репозитория. А там, очевидно, maven shade не успел поработать(
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для того чтобы IDEA брала зависимости с m2, вам необходимо настроить Maven в вашем проекте.
1. Убедитесь, что у вас установлен и настроен Maven на вашем компьютере. Если его нет, скачайте и установите Maven с официального сайта.
2. Откройте ваш проект в IntelliJ IDEA.
3. Откройте файл pom.xml в корне вашего проекта. Это файл конфигурации Maven, где вы указываете зависимости и настройки проекта.
4. Добавьте необходимые зависимости в секцию вашего pom.xml. Например:
org.springframework spring-core 5.3.9org.springframework spring-core 5.3.9
5. После добавления зависимостей, IDEA должна автоматически обновить проект и подтянуть все необходимые библиотеки из m2.
6. Если IDEA не обновляет зависимости автоматически, вы можете попробовать обновить проект вручную. Для этого откройте вкладку Maven слева внизу и нажмите на кнопку "Reload Project".
Теперь ваш проект должен брать зависимости с m2 и все библиотеки должны быть доступны для использования в вашем проекте. Если у вас возникли какие-либо проблемы или вопросы, не стесняйтесь спрашивать!