#java #eclipse #distribution
#java #eclipse #распространение
Вопрос:
Я хочу использовать несколько стандартных сторонних библиотек (например, log4j от Apache) для небольшого Java-проекта, над которым я работаю. Я знаю, как настроить мою IDE Eclipse, чтобы эти библиотеки были доступны во время моей разработки, но я не знаю, как создавать дистрибутивы для моего приложения, чтобы при необходимости эти внешние библиотеки были правильно установлены в целевой системе.
Один из подходов, который я видел, заключается в том, чтобы обращаться с этими внешними библиотеками так, как если бы они были внутренними для проекта, даже проверяя их в Git или subversion или что-то еще вместе с кодом, который действительно разрабатывается.
Что мне больше всего не нравится в этом подходе, по крайней мере, в том, с чем я работаю на данный момент, так это то, что общий объем дискового пространства этих внешних библиотек более чем в 10 раз превышает объем самого моего приложения (которое, как я уже сказал, довольно маленькое и простое).
Есть ли лучший подход?
PS: Я слышал о Maven и о том, что он должен решать эти проблемы, но это выглядит излишеством для относительно небольшого и простого проекта, с которым я здесь имею дело.
Ответ №1:
Я годами не создавал Java-приложения без maven. Независимо от того, насколько большой или маленький, иметь что-то, управляющее зависимостями для вас, здорово. Плагин зависимостей отлично подходит для случаев, когда вы действительно хотите выполнить развертывание на конечном сервере и вам нужно разместить все свои deps локально. Я не думаю, что какой-либо проект слишком мал для простого файла POM.
Комментарии:
1. 1 простой pom и локальный репозиторий могут быть созданы за несколько минут. Вы можете использовать плагин Maven Assembly для сборки .zip со всеми вашими зависимостями, упакованными для развертывания. По мере роста вашего проекта / команды вы всегда можете настроить распределенный репозиторий, чтобы облегчить ваши потребности в интеграции. В этом прелесть maven, которую вы можете использовать в той мере, в какой это соответствует вашим потребностям.
Ответ №2:
Честно говоря, ваш вопрос на самом деле не о Eclipse, а о распространении проекта.
Простое ванильное решение, как вы сказали, состоит в том, чтобы включить эти jar-файлы в ваш проект в svn / git.
Maven действительно может помочь, и он также имеет хорошую интеграцию с Eclipse, естественно, для упрощения цикла развертывания.
Я согласен с вами, что Maven может быть излишеством. В качестве промежуточного решения я бы вместо этого посмотрел на ivy и, возможно, gradle тоже. Здесь есть действительно потрясающая презентация под названием «ваша следующая успешная сборка» по этой теме.
Ответ №3:
Maven великолепен и все такое, пока вам не понадобится начать разработку с другими и не иметь репозитория maven, к которому каждый может получить доступ. Это становится проблемой только тогда, когда вы создаете модуль, от которого зависит ваш текущий проект, и им необходимо включить эту зависимость в настройку.
Отсутствие репозитория maven для внесения в него этих изменений может привести к беспорядку.
Если это всего лишь проект, над которым вы работаете, или внутренний для вашей компании, то maven может быть хорошей идеей, или если вы используете только сторонние библиотеки, которые уже доступны в общедоступных репозиториях maven.