Включение 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