Leiningen, Maven и прочая
А скажите мне, почему в жабе приняты такие хитрожопости с инфраструктурой разработки?
От входа я что-то не соображу, как правильно прикрутить к кложуре jdbc, но если воспользоваться leiningen (по этим статьям: http://alexott.net/en/clojure/ClojureLein.html и http://devcenter.heroku.com/articles/clojure-web-application ), то проект создается, зависимости выкачиваются, итд.
Смущает, что непонятно, что именно при этом происходит, на низком уровне, так сказать, и что эти утилиты для сборки лезут за зависимостями в какие-то центральные репозитории. Мне как-то более привычно "скачал нужную версию, руками положил рядом в проекте и ссылаешся на нее".
От входа я что-то не соображу, как правильно прикрутить к кложуре jdbc, но если воспользоваться leiningen (по этим статьям: http://alexott.net/en/clojure/ClojureLein.html и http://devcenter.heroku.com/articles/clojure-web-application ), то проект создается, зависимости выкачиваются, итд.
Смущает, что непонятно, что именно при этом происходит, на низком уровне, так сказать, и что эти утилиты для сборки лезут за зависимостями в какие-то центральные репозитории. Мне как-то более привычно "скачал нужную версию, руками положил рядом в проекте и ссылаешся на нее".
no subject
Хитрожопость для того и создана, чтобы разработка разных проектов велась по одной и той же модели жизненного цикла (единая структура директорий в проекте, например или там фазы build), вместо ада Ant-based билдов. Плюс автоматизация разрешения зависимостей. В общем, когда осваиваешь этот инструмент, работать становится гораздо проще. Но порог вхождения определенный имеется, но это ж Java.
Автоматизация разрешения зависимостей - это очень ок, потому что этим решается проблема транзитных зависимостей, которые ручками задолбаешься решать. Управление репозиториями, версиями JAR-ок тоже достаточно логичное.
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
???
Некоторые заморочки могут быть только при использовании многочисленных компонентов с определёнными зависимостями и определённых версий, и в контексте полного процесса разработки. Типа, с чекаутом, компиляцией-сборкой, деплойментом на тестовый сервер, запуском тестов и выдачей отчётов, с инкреметированием версии. Вот тогда да, могут быть вопросы. В тривиальных случаях 1 xml, батник и всё.
(no subject)
(no subject)
no subject
А вот это называется "колхоз" и гарантирует невоспроизводимость билд-окружения на другой машине в другое время. С невоспроизводимыми глюками от кривизны сборки.
(no subject)
(no subject)
(no subject)
no subject
Руками весь этот ад обновлять заебёшься, вот и был придуман мейвен. Параноики присоединяют его к собственному репозиторию, и запрещают лезть в публичные. Но принцип остаётся.
(и, кроме того, есть главный вопрос: класть ли зависимости в свн/гит. Если да, то обновлять их ещё более заебёшься, если нет — это нарушает принцип «билд должен выполняться с нуля нажатием одной кнопки», а это очень хороший принцип).
(no subject)
(no subject)
(no subject)
(no subject)
no subject
А статыщпицотмильонам индусов эта эта ваша привычная операция категорически не под силу. Так что вы, ребе, в категорическом меньшинстве и ваши привычки тут веса не имеют.
no subject
плюс так повелось, что в разных ветках SCM лежат pom.xml с одинаковым modelVersion. из-за чего работать в двух воркспейсах одновременно проблематично(капец как проблематично). собраные jar в локальном репозитории не различают из какой они ветки из за чего появляются невоспроизводимые на другой машине проблемы, или наоборот - все работает до того момента, пока кто-нибудь другой не вытянет себе проект.
(no subject)
no subject
лейном создал пустой проект. когда нужно какая-то либа, в тот проект записываю зависимость, lein deps, потом из папки lib этого пустого проекта ручками беру либу и кладу её в воркин-фолдер, где все мои рабочие проекты, и дальше про лейн забываю, всё остальное эклипсом делаю
но запланировал почотче освоить этот лейн, он кроме создания болванки и выкачивания зависимостей ещё кучу полезностей делает. ну и комманд-лайн, как некоторым нравится :)