Clojure: Как создать объект Java во время компиляции, но не во время загрузки или во время выполнения
Я использую библиотеку Java с Clojure. Библиотека Java требует, чтобы объект создавался только во время компиляции. Когда приложение развертывается с помощью uberjar (созданного с помощью leiningen), этот объект конфигурации не может быть создан должным образом без ошибки.
Я могу создать объект только во время компиляции с помощью макроса. Проблема в том, что он не сериализуем. Как сделать этот объект доступным для jvm, когда приложение запускается через uberjar? Помещение объекта в атом не работает, потому что атом сбрасывается во время загрузки / выполнения для нового экземпляра jvm, на котором выполняется jar. Jvm времени компиляции нужен способ поместить этот объект в один из скомпилированных классов. (gen-class), похоже, не работает, потому что он может инициализировать состояние только во время выполнения через инициализатор.