2016-12-05 4 views
0

У меня есть приложение, которое развертывается на машине AIX в качестве исполняемого JAR. Я использовал Maven shade для создания Uber JAR, который имеет все мои зависимости, упакованные в JAR; Spring, Logback и javax.mail. Приложение вызывается другой программой, выполняющей скрипт оболочки. Все работает отлично. Администратор базы данных попросил меня удалить все зависимости из JAR, поместить их в каталоги на машине AIX и включить эти местоположения в CLASSPATH пользователя AIX. Он отметил, что это лучшая практика. Я использовал тег <scope>provided</scope> раньше, чем в Maven, чтобы не упаковывать зависимости, которые Container предоставил, но я никогда не сталкивался с этим типом запроса с JAR. Является ли это лучшей практикой с подобным сценарием?Лучшая практика для развертывания зависимостей JAR

+0

Повторное использование? Это единственный надежный ответ, который я получил до сих пор. – Hodglem

+0

Зачем нужна отдельная папка lib, которая содержит все банки вместо того, чтобы их упаковывать в одну банку, которую просто можно запустить с помощью 'java -jar ...'? Звучит странно? Это может быть достигнуто с помощью appassemlber maven plugin ..., который может генерировать сценарии оболочки для обработки генерации classpath и т. Д. – khmarbaise

+0

Если вы начнете повторно использовать части libs, вы представите библиотеку разделов, которая делает обновление более сложный, если не невозможно ... лучше идти по пути автономно .... – khmarbaise

ответ

0

В Uber-JAR зависимости не видны. Но есть много людей, которые должны знать и перечислять все зависимости, потому что им нужно опубликовать список всех лицензий (например, gnu, asf ...), используемых в приложении.

Так что, если вам нужен четкий список всех зависимостей, то Uber-JAR - это не лучшая практика, которую вы должны пойти.

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