2017-05-17 9 views
2

私は会社のArtifactoryリポジトリにあるライブラリを見つけようとしていますが、それをダウンロードしているようですが、requireを試してみるとlein runのコードを実行するとFileNotFoundExceptionが返ってきます。ClojureファイルにJavaライブラリを必要としないのはなぜですか?

マイプロジェクトファイルは、次のようになります

(defproject clj-test "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"} 
    :dependencies [[org.clojure/clojure "1.8.0"] 
      [com.ourgroup/library "1.0.0"]] 
    :repositories [["releases" {:url "https://url-to-our-repo" 
          :username "username" 
          :password "password"}]] 
    :main ^:skip-aot clj-test.core 
    :target-path "target/%s" 
    :profiles {:uberjar {:aot :all}}) 

マイ単一のコードファイルは次のようになります。

(ns clj-test.core 
    (:gen-class) 
    (:require [library :as lib])) 

(defn -main 
    "I don't do a whole lot ... yet." 
    [& args] 
    (println "And now for something completely different...")) 

答えて

2

あなたはimportクラスにする必要があります。クラスの名前を取得するには、jar(Javaソースコード)の中を見て、インポートする必要がある完全修飾クラス名を構成するJavaパッケージとクラスを見つけます。

私はこれを編集しました。私の以前の間違いは、「ネームスペースが必要です;クラスをインポートします。クラスを要求するのはうまくいかない」というコメントで修正されました。したがって、Javaの相互運用性については、Javaのソースファイルを作成する場合と同じように、クラスをインポートする必要があります。

+0

これは "library"という名前のパッケージと、そのパッケージに含まれるいくつかのクラスを持つJARです。非常にフラット。 –

+0

名前空間が必要です。クラスをインポートします。クラスを要求することは良いことではありません。 – amalloy

+0

ああ!それが私が欠けていたものです。どうもありがとう。 –

関連する問題