Что касается зависимости, я просто использую плагин для копирования зависимостей maven и копирую все зависимости в папку ./lib, а также предоставляю скрипт запуска, который использует подстановочный путь к классу (которыйто, как вы можете изменять свои зависимости столько раз, сколько хотите, и не нужно менять скрипт запуска).Что касается конфигурационных файлов, я помещаю их в папку ./config и снова включаю в путь к классу моего приложения в сценарии запуска (первый из них, по общему признанию, работает только для> Java 1.6).
Итак, в конце концов, почти все мои приложения имеют следующую структуру:
mystuff.jar launch.sh
./lib
./config
Тогда я просто соберу весь архив и передам его своим пользователям.Весь процесс, вероятно, легко автоматизировать с помощью maven, но я признаюсь, что я делаю это вручную: p
Если вы предпочитаете, и лицензии позволяют, вы также можете просто объединить все зависимости в один jar (с расширеннымзависимости внутри) с помощью сборочного плагина .Это делает банку громоздкой и дает пользователям обновленное приложение.труднее.Также у меня были проблемы с этим несколько раз из-за перезаписи файлов классов или чего-то такого, поэтому я лично придерживался папки ./lib.