#clojure #clojurescript #leiningen #clojure-java-interop #figwheel
#clojure #clojurescript #leiningen #clojure-java-interop #figwheel
Вопрос:
Я добавил :java-source-paths ["src/java"]
в свой project.clj, работает lein uberjar, но при запуске lein figwheel я получаю следующую ошибку:
Figwheel: Cutting some fruit, just a sec ...
Figwheel: Validating the configuration found in project.clj
Figwheel: Configuration Valid :)
java.lang.ClassNotFoundException: projectc.java.gcloud.DataStore, compiling:(projectc/gcloud/datastore.clj:1:1)
Я добавил это в раздел ‘: uberjar`
:prep-tasks ["javac" "compile" ["cljsbuild" "once" "min"]]
Есть какие-либо подсказки о том, как это решить?
Комментарии:
1. Вы смотрели на это ?
2. На всякий случай, я полагаю, вы знаете, что figwheel обычно используется для запуска Clojurescript и, следовательно, Javascript, и что обычно Java не играет никакой роли в этом процессе, потому что Java не запускается в браузерах (если вы не делаете что-то вроде запуска апплета). Я полагаю, Java может играть определенную роль в figwheel, поскольку компилятор Clojurescript написан на Clojure, поэтому вы могли бы что-то делать с Java до / после / во время компиляции Clojurescript. Если вы уже знаете все это и знаете, что Java — это то, что вам нужно с figwheel в этом случае, игнорируйте это. Может быть, это поможет кому-то еще.
Ответ №1:
Когда Figwheel (и компилятор ClojureScript) компилирует ваш код, он обработает все предоставленные файлы clj для компиляции макросов, которые находятся в clj
файлах. Похоже, что Figwheel пытается скомпилировать файл, в котором используется класс, которого нет в пути к классу? Возможно ли включить этот класс или исключить файл Clojure из компиляции Figwheel? Возможно, попробуйте создать этот Java-проект как JAR и включить его в качестве зависимости в качестве теста?
Это немного сложно определить с небольшим количеством информации, эта проблема также выглядит так, как будто она может быть актуальной?