Включение Jar of Maven Project в другой Maven Project не работает, но включение проекта в другой Maven Project работает

У меня есть 2 проекта, а именно Project_1 а также Project_2, Оба проекта Maven и я использую Netbeans.

Я хочу включить банку Project_1 в Project_2 что я делаю так

Проблема в том, что когда я включаю флягу, я не получаю никакой ошибки времени компиляции, однако я получаю NoClassDefFoundError исключение во время выполнения.

Когда я включаю Project_1 в Project_2 выполнив шаги, упомянутые здесь. (Пример открытого проекта). Я не получаю никаких ошибок. Ни время выполнения, ни время компиляции.

Не могли бы вы объяснить мне, что мне здесь не хватает?

Обновить

Project_2 развернут на сервере, который не находится на моей локальной машине, однако Project_1 находится в моей локальной машине.

Включение Project_1 в Project_2 так как проект был сделан для тестирования на моей локальной машине.

1 ответ

Решение

Прежде всего, хорошее практическое правило - никогда не использовать системную область и системный путь для получения зависимостей. По моему опыту всегда есть лучший способ:-)

Если Project_2 зависит от Project_1, то сначала установите его jar в локальный репозиторий:

   cd Project_1
   mvn clean install

Посмотрите, что вы обнаружите, что jar находится где-то в следующем каталоге:

   $HOME/.m2/repository

Как только это будет сделано, jar будет доступен как обычная зависимость для второй сборки

  cd Project_2
  mvn clean compile

Локальный репозиторий гарантирует, что проекты теперь отделены друг от друга. Предполагая, что вы используете версии снимка Project_1, сборка Project_2 всегда будет извлекать последнюю версию, созданную и протестированную.

Обновить

Вы должны использовать менеджер репозитория Maven для совместного использования jar-файлов между машинами / командами. Рекомендации содержатся в следующем ответе:

Поделиться банкой модуля с другой командой

Как настроить Maven для использования репозитория, такого как Nexus, описано в его документации.

Как описано в документации к плагину развертывания, вам нужно добавить в POM раздел distributionManagement (с указанием URL-адреса репозитория), а затем загрузить файл проекта в свой репозиторий следующим образом:

   cd Project_1
   mvn clean deploy
Другие вопросы по тегам