clojure-russia

Работа и релокейт: #jobs-rus | #clojure-russia-offtop Телеграм-чат https://t.me/clojure_ru
Artem Yarulin 2018-08-16T07:25:45.000100Z

Чота не могу найти - можно как в lein проект добавить локальный ubejar? Мне чисто в репле поиграть с другим проектом. Нашел как jar юзать внешний, но с uberjar чота не получается

dima 2018-08-16T10:12:41.000100Z

mvn install:install-file -Dfile=target/trace-0.1.7-SNAPSHOT.jar -DgroupId=jeaye -DartifactId=re-frame-trace -Dversion=0.1.7-1 -Dpackaging=jar -DgeneratePom=true проинсталит jar в локальный maven ~/.m2 затем можно сослаться на этот jar

dima 2018-08-16T10:13:59.000100Z

добавить в project.clj как [jeaye/re-frame-trace "0.1.7-1"] @artem.yarulin

dima 2018-08-16T10:16:13.000100Z

А вообще я бы предложил попробовать deps.edn https://clojure.org/reference/deps_and_cli#_dependencies там проще добавлять local и git завиcимости

Artem Yarulin 2018-08-16T10:26:48.000100Z

@trybeee Чота у туплю наверно. Сделал хелло ворлд проект на жаве

package test;
public class Hello {}
сбилдил gradle build (если это важно) потом mvn install:install-file -Dfile=test/build/libs/test.jar -DgroupId=test -DartifactId=test -Dversion=0.1.1 -Dpackaging=jar -DgeneratePom=true Затем добавил в lein, все ок, lein deps :tree его выводил, в репле classPath вывожу он есть. А если (require 'test) то ошибка FileNotFoundException Could not locate test__init.class or test.clj on classpath. clojure.lang.RT.load (RT.java:456)

dima 2018-08-16T10:35:20.000100Z

Не могу сказать. уже давно не работаю в lein, перешел на deps.edn

Artem Yarulin 2018-08-16T10:37:04.000100Z

сча попробую его

dima 2018-08-16T10:38:35.000100Z

{:deps
 {test {:local/root "test.jar"}}}

Artem Yarulin 2018-08-16T10:40:23.000100Z

а если у меня group-id=aaa, artifactId=bbb, то импортировать я его должен как (require 'aaa.bbb/AppClassName) ?

prepor 2018-08-16T10:42:55.000100Z

для начала ява классы ипортируются через import

prepor 2018-08-16T10:43:08.000100Z

require только для clj* неймспейсов

Artem Yarulin 2018-08-16T10:43:25.000100Z

аааааа

Artem Yarulin 2018-08-16T10:44:03.000100Z

Работает, урааааа, спасибо @prepor и @trybeee 🙂

prepor 2018-08-16T10:47:59.000100Z

а потому уже можно говорить о том, что group-id=aaa, artifactId=bbb к джарам никакого отношения не имеют, только к способу их распространения

Artem Yarulin 2018-08-16T10:50:01.000100Z

Т.е. если у меня

package test;
public class Hello {}
то это будет (import test.Hello) ?

prepor 2018-08-16T10:51:36.000100Z

да

prepor 2018-08-16T10:51:55.000100Z

и еще, убержары ничем не отличаются от просто жаров

prepor 2018-08-16T10:51:59.000100Z

с точки зрения жвм

Artem Yarulin 2018-08-16T10:52:42.000100Z

спасибо за объяснения, все запуталось в голове уже 🙂

Artem Yarulin 2018-08-16T11:52:22.000100Z

нашел косяк еще - у меня spring boot а там у них свой loader и поэтому простой иморт класса из jar не срабатывает в репле

Artem Yarulin 2018-08-16T20:29:40.000100Z

Если у кого тоже есть странное желание дернуть Kotlin из репла кложуры - я тут накидал пример https://github.com/artemyarulin/clojure-kotlin и описал пару подводных камней в связи с этим

1
dottedmag 2018-08-16T21:09:27.000100Z

Господа, а кто-нибудь видел эффективную персистентность на диск для кложурных структур данных? Чтобы можно было положить [{:state {...} :change {...}} {:state {...} :change {...}} ....], где :state каждый раз небольшое изменение от предыдущего состояния на диск, и получилось не 1000 копий, а structural sharing, и при поднятии с диска память не раздувало на 1000 копий?

dottedmag 2018-08-16T21:10:28.000100Z

Если это ещё и не на диск, а в IndexedDB, так было бы совсем то, что надо.