Если на этот вопрос ответили где-то еще, пожалуйста, шлепни меня и укажи мне правильное направление.
Я новичок в Maven и пытаюсь понять, как использовать его в своих проектах. У меня есть два проекта верхнего уровня, одно приложение Swing, другое - набор веб-сервисов. Они оба зависят от одной и той же внутренней банки. Каковы хорошие способы настроить poms для этого?
Если банку использовал только один из проектов, то, похоже, я бы переместил ее внутрь и превратил в модуль. Но я не хочу двух (и более поздних) копий исходного кода этой банки.
Один из способов, как я мог бы это сделать, - это иметь главный pom для приложения Swing, в котором приложение Swing и библиотека jar являются модулями. Затем настройте другой мастер-модуль для веб-приложения таким же образом. Будет ли это иметь смысл? Есть ли лучшие способы?
Структура каталогов в настоящее время очень проста:
Development/
----SwingApp/
----WebServices/
----CoreLibrary/
Слишком много информации и дополнительных вопросов:
Я унаследовал «систему сборки» (используя термин «свободно»), которая представляет собой 100% автоматически генерируемые Ant-скрипты Netbeans. Я начал пытаться внедрить его в систему непрерывной интеграции TeamCity, которая мне действительно нравится. Я столкнулся с серьезными проблемами, пытаясь построить проект WebServices с его помощью. В сгенерированном муравье (build-impl.xml) есть вещи, которые, насколько я могу судить, не могут быть переопределены в среде CI. Объедините это с серьезным адским занятием в повседневной разработке, и вы начинаете понимать, почему я хочу пойти в Maven.
Одной из проблем, поднятых в этом вопросе, является привычка разработчиков в моей команде. Прямо сейчас различные проекты в Netbeans имеют ссылки на проект «CoreLibrary». Это означает, что когда источник изменяется в «CoreLibrary» и разработчик выполняет сборку приложения верхнего уровня, он также будет создавать CoreLibrary по мере необходимости. Это может быть смоделировано в Maven? Это пошло бы способами облегчить переход. Пока что я вижу, что Netbeans (6.7) не делает этого с maven-сборками, и я не думаю, что смогу (пока) продавать свою работу за пределами Netbeans.