Как я могу использовать библиотеки Clojure в проекте Java, используя Spring-Boot? - PullRequest
1 голос
/ 04 июля 2019

Я бы хотел импортировать библиотеки clojure в Java-приложение на основе maven. Используемая версия clojure в основном 1.8+, для сборки используется boot. Я могу позволить себе быть гибким в языковых версиях, но использование boot для закрытия является обязательным требованием.

Я немного прочитал об этом, но я не смог найти ни одного недавнего решения, кроме тех, которые используют загрузку. Учитывая, что это оба языка JVM, я надеялся, что это не будет слишком сложно, но не уверен, с чего начать.

1 Ответ

0 голосов
/ 08 июля 2019

Простой старый Maven, вам должно хватить, чтобы иметь возможность получать любые зависимости Clojure, так как он поддерживает добавление различных источников пакетов.Вам просто нужно добавить еще одно хранилище, где размещены пакеты Clojure:

  <repositories>
    <repository> <!-- You probably have this already -->
      <id>central</id>
      <url>https://repo1.maven.org/maven2/</url>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <releases>
        <enabled>true</enabled>
      </releases>
    </repository>
    <repository><!-- You'll need to add this -->
      <id>clojars</id>
      <url>https://repo.clojars.org/</url>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <releases>
        <enabled>true</enabled>
      </releases>
    </repository>
  </repositories>

Чтобы добавить больше зависимостей в Maven, вы можете искать пакеты Clojure в Clojars или в Репозиторий Maven .Например, вот запись в репозитории Maven для библиотеки clj-time: https://mvnrepository.com/artifact/clj-time/clj-time/0.15.1

Соответствующий бит для добавления этой зависимости в Maven будет:

<dependency>
    <groupId>clj-time</groupId>
    <artifactId>clj-time</artifactId>
    <version>0.15.1</version>
</dependency>

Как только вы получитеБиблиотека доступна как зависимость, вы можете вызвать ее из Java, как описано в этом руководстве: https://clojure.org/reference/java_interop#_calling_clojure_from_java

Если вам нужно написать значительное количество кода для использования интересующих вас библиотек, это может быть целесообразнонаписать функцию Clojure в качестве точки входа, а не пытаться написать много кода Java, который вызывает код библиотеки Clojure.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...