Может ли IDEA разрешить подмодуль maven, например eclipse и auto, используя последний файл класса - PullRequest
2 голосов
/ 04 марта 2020

Я использую IDEA для создания большого проекта maven, который содержит много подмодулей. И я не мог найти аналогичную функцию, которая предусмотрена в затмении. Эта функция блокирует меня годами, и я не могу переключиться на IDEA.

В eclipse есть функция под названием «Включить разрешение рабочей области». Благодаря этой функции все проекты в рабочей области eclipse будут автоматически разрешены другим проектом в той же рабочей области (Eclipse автоматически обновит путь к классу сборки и заменит путь к файлу зависимостей в выходную папку другого проекта, например target/classes). Тогда зависимости всегда будут указывать на последний скомпилированный файл класса, даже если вы можете обновить файл класса во время выполнения (при отладке он вступит в силу немедленно, если вы не обновляли сигнатуру метода, а только содержимое метода).

Для Например, для проекта maven, например:

Project
  |- module1
  |- module2
  |- pom.xml 

module1 зависит от module2, в eclipse module1 не найдет module2.jar из репозитория maven, а непосредственно из module2 / target / classes (скомпилировать выходную папку). Но IDEA всегда будет пытаться найти module2.jar из репозитория Maven.

Есть идеи?

Ответы [ 2 ]

1 голос
/ 04 марта 2020

В нашем проекте мы используем несколько модулей maven с зависимостями от других наших модулей, и у меня нет проблем с IDEA, подобных тем, которые вы описали.

На мой взгляд, есть 2 важных момента рассмотреть:

  1. Всегда импортируйте модуль в IDEA как модуль maven. Другими словами, нажмите File -> New -> Module from Existing Sources... -> выберите pom.xml вашего модуля. В противном случае IDEA не будет загружать измененные зависимости при изменении pom.xml.

  2. Использовать DEVELOPMENT-SNAPSHOT (или точно такую ​​же) версию ваших зависимостей, которые присутствуют в рабочей области. Если вы укажете другую выпущенную версию, тогда (IDEA через) maven загрузит ее из репозитория Maven.

0 голосов
/ 05 марта 2020

В многомодульном проекте Maven IDE разрешает зависимость от источников модуля, а не от локальной библиотеки jav maven, если координаты maven (groupId, artifactId, versionId) совпадают.

Также для версии 'SNAPSHOT' будет разрешена зависимость версии 'LATEST'.

Для версий без 'SNAPSHOT' будут разрешены зависимости с версиями, объявленными как 'LATEST' и 'RELEASE'.

Конечно, эти модули должны присутствовать в текущем проекте IDE и добавляться как модули Maven.

...