История изменений
Исправление
stevejobs,
(текущая версия)
:
Maven - это не просто система сборки, это менеджер пакетов. Можно считать Java виртуальной операционной системой, в которой уже есть свой опакечиватель :)
Я как Java-разработчик всячески за то, чтобы никто не пытался «опакечивать» Maven (и Gradle, что одно и то же)
Никакие зависимости из Maven **не** должны зеркалироваться в пакеты пакетной системы операционной системы. Попытка это сделать приводит к трудноуловимым багам и чудовищным затратам на поддержку.
Всё что может сделать создатель «пакета Java-приложения» - это вызвать `mvn clean install` в корне джавных исходников и ждать, пока на выходе где-то не появится набор JAR-файлов. Обычно это какая-то часть содержимого директории target. Получившееся берется как есть и пихается в совершенно любое место файловой системы.
Я регулярно вижу, как мантейнеры из Debian или даже Arch пытаются что-то «опакетить» другими способами, и это тихий ужас.
Особо отмечу, что если ты натравил mvn clean install на какой-то произвольный репозиторий на гитхабе, директория target - это не готовая какая-то папка, на которую можно вызвать make install и она сама по себе встанет. Джавовские приложения по умолчанию вообще ничего не знают ни о каком GNU/Linux, и «деплоить» их на целевую машину могут и умеют только непосредственные разработчики этого софта (ну или те, кто прочитал документацию и запускает по инструкции на сайте).
Поэтому «правильная» поддержка Maven/Gradle/Sbt/... в Gentoo кажется действительно большой задачей, и кажется, что смысла в ней никакого нет. Лучше качать бинарники, которые правильным способом приготовили и выложили у себя создатели соответствующего софта, и вот эти бинарники уже можно опакетить
Исходная версия
stevejobs,
:
Maven - это не просто система сборки, это менеджер пакетов. Можно считать Java виртуальной операционной системой, в которой уже есть свой опакечиватель :)
Я как Java-разработчик всячески за то, чтобы никто не пытался «опакечивать» Maven (и Gradle, что одно и то же)
Никакие зависимости из Maven **не** должны зеркалироваться в пакеты пакетной системы операционной системы. Попытка это сделать приводит к трудноуловимым багам и чудовищным затратам на поддержку.
Всё что может сделать создатель «пакета Java-приложения» - это вызвать `mvn clean install` в корне джавных исходников и ждать, пока на выходе где-то не появится набор JAR-файлов. Обычно это какая-то часть содержимого директории target. Получившееся берется как есть и пихается в совершенно любое место файловой системы.
Я регулярно вижу, как мантейнеры из Debian или даже Arch пытаются что-то «опакетить» другими способами, и это тихий ужас.