Использование Java-библиотеки exiftool из clojure

Я пытаюсь включить exiftool для java в основанный на leiningen проект clojure. Эта библиотека недоступна в центральном, поэтому я включил тег: repository в мой файл project.clj.

project.clj:

(defproject clojure-mongo "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :repositories {"The Buzz Media Maven Repository" "http://maven.thebuzzmedia.com"}
  :dependencies [[org.clojure/clojure "1.7.0"]
                 [com.novemberain/monger "3.0.1"]
                 [com.thebuzzmedia/exiftool-lib "1.1"]])

exiftool для java не предоставляет контрольную сумму, и сайт предупреждает об этом:

"ПРИМЕЧАНИЕ. В настоящее время мы не предоставляем контрольные суммы для файлов в нашем хранилище, поэтому вы увидите сообщения" [ПРЕДУПРЕЖДЕНИЕ] Проверка контрольной суммы не удалась "от Maven, но их можно безопасно игнорировать".

Конечно же, lein deps дает мне ошибку, хотя я не уверен, что ее можно игнорировать:

"Получение com/thebuzzmedia/exiftool-lib/1.1/exiftool-lib-1.1.pom из репозитория Buzz Media Maven Не удалось перенести артефакт com.thebuzzmedia:exiftool-lib:pom:1.1 из / в репозиторий Buzz Media Maven ( http://maven.thebuzzmedia.com/): проверка контрольной суммы не удалась, контрольные суммы недоступны из хранилища "

Попытка импортировать класс ExifTool в моем коде clojure все еще дает мне ClassNotFoundException.

core.clj:

(ns clojure-mongo.core
  (:require [monger.core :as mg]
            [monger.collection :as mc])
  (:import [com.mongodb MongoOptions ServerAddress]
           org.bson.types.ObjectId
           com.thebuzzmedia.exiftool-lib.ExifTool))

Что я могу сделать, чтобы получить доступ к этому классу изнутри?

1 ответ

Решение

Например, класс, который вы хотите импортировать:

com.thebuzzmedia.exiftool.ExifTool

Кроме того, по умолчанию leiningen завершается ошибкой, если контрольная сумма не проверяется. Вы хотите, чтобы ваш :repositories ключ, чтобы выглядеть так:

:repositories [["The Buzz Media Maven Repository" 
               {:url "http://maven.thebuzzmedia.com"  :checksum :warn}]]

Вы также можете установить его :ignore Если вы предпочитаете. Смотрите пример проекта leiningen.

Другие вопросы по тегам