Как настроить Eclipse для создания внешних библиотек, требующих Java-приложений?

#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.