2010-07-18 4 views
8

Каковы наилучшие методы (и инструменты включения) для развертывания автономных приложений Java наряду с любыми необходимыми зависимостями jar, конфигурационными файлами и сценариями запуска?Развертывание файлов Java

Есть ли какие-либо плагины Maven, которые облегчают публикацию бинарных выпусков, чтобы пользователям не нужно было использовать maven, например?

ответ

3

Что касается зависимости, я просто использую maven dependency copy plugin и копирую все зависимости в ./lib папку и поставляю сценарий запуска, который использует class path wildcard (таким образом вы можете изменять свои зависимости столько, сколько хотите, и не имеете для изменения сценария запуска). Что касается конфигурационных файлов, я поместил их в папку ./config и снова включил его в путь к классам приложения в сценарии запуска (первый, по общему признанию, работает только для> java 1.6).

Таким образом, в конце концов почти все мое приложение имеет следующую структуру:

mystuff.jar launch.sh 
./lib 
./config 

Тогда я просто застегивать все это и дать его своим пользователям. Весь процесс, вероятно, легко автоматизировать с помощью maven, но я признаю, что делаю это вручную: p

Если вы предпочитаете и разрешаете лицензии, вы также можете просто связать все зависимости в одну банку (с расширенными зависимостями внутри) с использованием assembly plugin. Это, как правило, делает банку громоздкой и дает пользователям обновленное приложение. труднее. Кроме того, у меня были проблемы с ним несколько раз из-за того, что файлы классов перезаписываются или что-то еще, поэтому я лично придерживаюсь папки ./lib.

6

Есть ли какие-либо плагины Maven, которые облегчают публикацию бинарных выпусков, чтобы пользователям не нужно было использовать maven, например?

Используйте Maven Assembly Plugin, чтобы создать бинарный дистрибутив zip/tar.gz/tar.bz2 вашего проекта. Этот плагин чрезвычайно гибкий - по цене некоторой сложности - и вы можете делать почти все, что хотите. Затем deploy (в смысле maven) произведенный артефакт, загрузите его где-нибудь и т. Д.

1

У вас есть launch4j, который, если вы можете заставить его работать, подключит Java-приложение к исполняемому файлу для вашей платформы.

1

Если ваша цель развертывания поддерживает файлы RPM, я настоятельно рекомендую вам изучить rpm-maven-plugin. Это позволяет легко сопоставлять артефакты проекта, включая зависимости, с пакетом RPM.

Я использовал его с большим успехом для развертывания приложений среднего масштаба.

0

Посмотрите на Appassembler Maven Plugin. Вы также можете комбинировать его с Assembly Maven Plugin.

Используйте плагин appassembler для создания набора «программ», указав исполняемые имена и основные классы. Вы также можете создать его и создать каталог etc, в который вы можете добавить файлы конфигурации.

Если генерировать каталог с помощью сценариев запуска и каталога двоичных файлов недостаточно, вы можете использовать плагин сборки для копирования через дополнительные файлы (например, файлы конфигурации) в соответствующий каталог и/или пакет приложение в архив.

0

Вы можете использовать Oracle в муравье или Maven сценариев:

http://docs.oracle.com/javafx/2/deployment/jfxpub-deployment.htm

выше не только скомпилировать код и создать опарник, но он будет также создать двоичный исполняемый (Windows исполняемый файл или приложение файл Mac). Он также может создавать собственные установщики. Кроме того, он позволяет включать JVM с вашим дистрибутивом, поэтому для конечного использования не требуется устанавливать Java.

Смежные вопросы