Size: a a a

2020 January 29

VN

Vladislav Navrocky in Kotlin JVM
Alexander Nozik
Обычный application dist. Не знаю, где везде. Его используют довольно редко для внутренних решений. Обычно просто люди, которые от мавена отвыкнуть не могут.
А что на выходе получится, fatjar?
источник

AN

Alexander Nozik in Kotlin JVM
Нет, директория с джарами + стартовые скрипты
источник

AN

Alexander Nozik in Kotlin JVM
Fatjar - плохое решение
источник

VN

Vladislav Navrocky in Kotlin JVM
Alexander Nozik
Fatjar - плохое решение
Почему?
источник

AN

Alexander Nozik in Kotlin JVM
Потому что проблема конфликтующего classpath, не видны версии и все равно нужен скрипт для запуска
источник

AN

Alexander Nozik in Kotlin JVM
Отдельные джары автоматом следят за изоляцией содержимого. Ещё лучше jmod, но они пока мало где поддерживаются
источник

VN

Vladislav Navrocky in Kotlin JVM
Хм, ну может быть, погляжу что за application dist
источник

AE

Alexandr Emelyanov in Kotlin JVM
у бута целый фреймворк, который пакует jar внутрь и потом их читает в класспас
источник

AN

Alexander Nozik in Kotlin JVM
Vladislav Navrocky
Хм, ну может быть, погляжу что за application dist
Просто градл умеет сигментировать зависимости. Фатджары там не являются решением по умолчанию.
источник

VN

Vladislav Navrocky in Kotlin JVM
Alexandr Emelyanov
у бута целый фреймворк, который пакует jar внутрь и потом их читает в класспас
Ну по сути же fatjar
источник

VN

Vladislav Navrocky in Kotlin JVM
Fatfatjar
источник

AE

Alexandr Emelyanov in Kotlin JVM
Vladislav Navrocky
Ну по сути же fatjar
да, только таскаешь один файл
источник

VN

Vladislav Navrocky in Kotlin JVM
Alexandr Emelyanov
да, только таскаешь один файл
Почему только, суть fatjar  в том что это один файл
источник

AN

Alexander Nozik in Kotlin JVM
На самом деле нет разницы, таскать один jar или один zip. Проблема конкретно shadowjar в том, что он все классы зависимостей перепаковывает в одно дерево. Там возникают всякческие сложности с ресурсами, серивс лодерами, да и просто конфликтами путей. Я не знаю, чего делает бут, но подозреваю, что что-то более сложное, чем просто закидывание всего в одно дерево.
источник

VP

Vladimir Petrakovich in Kotlin JVM
О да, там куда веселее.
Но оно тоже не всегда работает без приколов.
источник

AO

Alexey Otts in Kotlin JVM
Alexander Nozik
Отдельные джары автоматом следят за изоляцией содержимого. Ещё лучше jmod, но они пока мало где поддерживаются
class path и там и там как бы одинаковый почти
источник

AO

Alexey Otts in Kotlin JVM
Всё равно всё грузит один class loader
источник

AO

Alexey Otts in Kotlin JVM
проблема у fat jar только с файлами, которые нельзя конкатенировать, например xml конфиги
источник

AO

Alexey Otts in Kotlin JVM
Но в 2к20 их уже никто не использует
источник

AN

Alexander Nozik in Kotlin JVM
Alexey Otts
Всё равно всё грузит один class loader
Точно? Чего-то я не увеерен. По-моему там отдельный urlClassLoader на каждый джар
источник