TGViewer
Стой под стрелой Стой под стрелой @nikitonsky_pub · 11.9K subscribers
Post #195 7.88K
Я тут артефакт в Мавен Централ запихивал. Это такой репозиторий глобальный для Джавы. Ну и как и всегда в Джаве, всю осмысленную работу делаешь за 15 минут, а потом 7 часов ебешься с кафкианской бюрократией.

Не, я был готов, что раз это что-то центральное, то там все будет плохо. Но настолько?

Про приятное: jar-ку я собрал за 15 минут. Все, что идет в комплекте с JDK — прекрасные, удобные, стабильно работающие вещи: javac, jar, javadoc, java. Наверное, потому что люди, программирующие JDK, на Джаве не пишут.

Подписал еще минут за тридцать. Там нужен GPG, ну и всякая возня с Github Actions, традиционная для linux еботня: немножко помучался, немножко в говне измазался, 40 вкладок с гуглом открыл, но задачу выполнил.

И дальше, сука, начинается кафкианский процесс. Вот у меня лежат восемь файлов: три джарки, pom.xml и четыре подписи к ним (не то, чтобы нам все это было нужно, но когда начал, остановиться трудно). В конечном итоге в Maven Central будут лежать ровно эти же восемь файлов. Побайтово те же. И ничего сверху.

Казалось бы, насколько сложно их будет туда положить? Ну, curl какой-нибудь с Auth токеном, да? В цикле? Казалось.

Что нам говорит документация? На тебе, говорит, плагин для мавена. Нахера мне плагин для мавена? У меня и мавена-то нет. Ну ладно, давайте попробуем.

Попробовал. Типичный мавен: ты что-то в него пишешь, а потом ничего не происходит. Документации нет (это ж плагин). Точнее, документация такая: просто вызови mvn deploy. Вызываю. Не реагирует. Вызываю более настойчиво. Не, каких-то ключей не хватает, урлы не те, тут я вообще не понял, и вообще ты мудак, иди нахер. Ладно.

Следующая строчка в документации: если не хотите использовать mvn deploy, зовите mvn nexus-staging:release. В чем разница? Ладно, пробую. Нет такого плагина. А я все ну вот побуквенно скопировал из доки, хоть плач. И опять я мудак. Ладно. Типичный мавен.

Смотрю еще в документации. О! Ручной деплой. Ну там-то поди есть заветный URL для curl-а? Не-а. Ручной — это реально ручной, зайди, говорит, на сайт, и мышкой накликай. Я думал, компьютеры должны избавлять человека от работы, а не создавать ее.

Пошел посмотреть на их UI. Я, конечно, был готов к тому, что Джава-программисты традиционно не умеют в веб (а во что они, вообще говоря, умеют-то? В десктопы тоже не особо получается). Но тут меня встретило просто дно дна. Это какие-то табы и панельки из 90-х, как будто Эклипс взяли и засунули в браузер, а иконки натырили из какого-то бесплатного банка.

Ладно, думаю, но есть же мавен-плагин, который делает этот самый треклятый деплой. Значит, у него есть исходники. Значит, где-то внутри он делает http-запрос. Значит, можно его реверснуть. Так?

Так, да не так. Maven плагины это помойка с эффективностью примерно 1000 строк Джавы на 1 curl-запрос. Естественно, он собирается по кусочкам, которые достаются из всех возможных жоп: констант, импортов, классов каких-то, бинов. Там целая инфраструктура с фабриками чтобы, скажем, сегмент /promote/ в URL дописать.

Пошел гуглить, может REST API задокументирован где-то? Задокументирован, для третьего Нексуса. А у Сонатайпа какой? Конечно второй.

Может, ко второму документация есть? Есть, конечно же, вот она. Статья 2018-го года. Само АПИ, говорит, мы вам не покажем, пореверсите в браузере. Вот как включить: три ссылки, объясняющие, что такое девтулы, и одно видео (!!!) с заветной командой. Видео, конечно, недоступно. Вообще ни одно видео не доступно. Ну разумеется.

Вопрос только один: это все следствие какого-то survivorship bias? Нормальный человек на Джаве писать не пойдет или что? Почему так плохо все в КЛЮЧЕВОМ элементе инфраструктуры? Почему Мавен-репозиторий это не тупо SFTP папка, например? Нахрена мне настраивать какой-то maven плагин, если вызвать gpg и дернуть curl я могу хоть из баша, блин. Я же не безрукий.

Вообще, вот мотто Джава экосистемы: «нам не нравятся существующие стандарты, мы напишем свое такое же, но на Джаве, а еще мы программировать не умеем».

Так и живем.
  • 👍 1
  • 🔥 1
More from @nikitonsky_pub
  1. Oct 2, 2026Поскольку я больше не безработный, напоминание себе на следующий раз о поиске работы, пото…
  2. Sep 26, 2026По соцсетям гуляет контроверсивный ролик с недавнего Rails World, в котором DHH со сцены с…
  3. Sep 21, 2026Самое обидное это конечно что ты вынашиваешь какую-то там идею неделю, две, месяц, год, жи…
  4. Sep 15, 2026Возник еще вопрос, почему не подписать поле ввода внутри, а когда на него нажимаешь, подпи…
  5. Sep 15, 2026Просто подпишите поля Есть такой тренд — писать название поля на форме внутри, плейсхолдер…
  6. Sep 11, 2026Мы все ругаем русских локализаторов и конечно за дело, но я вот как-то пошел у себя в Берл…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →