5

Leinをclojureで使用する方法を理解し、Win7x64に正しい.jarファイルをダウンロードする方法を理解しようとしています。具体的な例として、JFreeChartとDejcartesを使おうとしています。

私の質問は一般的なものであり、JfreeChartに固有のものではありません。私は基本的に、特定のパッケージを使用する例を見るのと、そのパッケージをlein経由で利用できるようにするのとの間のギャップを埋める方法を理解していません。うまくいけば、誰かが他のパッケージにも適用できる方法で答えることができます。

次のリンクを参照してください:https ://github.com/markmfredrickson/dejcartes/blob/master/Readme.txt 私のproject.cljは次のようになっています(この投稿の最後の2行をコメントアウトしています)。

(defproject monty "1.0.0-SNAPSHOT"
  :description "Monty Game Challenge"
  :dependencies [[org.clojure/clojure "1.2.1"]
                 [org.clojure/clojure-contrib "1.2.0"]
                ;[org.jfree/chart "1.0.13"]])
                 [com.markmfredrickson/dejcartes "1.0.0"]])
  1. Dejcartes(import '(org.jfree.chart chartframe))のreadme.txtで使用されているので、JFreeChart用の.jarファイルが必要だと思います。

    [org.jfree/chart "1.0.13"]project.cljを入力しましたが、lein deps次のように文句を言います。

    C:\Users\me\code\Clojure\monty>lein deps
    Downloading: org/jfree/chart/1.0.13/chart-1.0.13.pom from central
    Downloading: org/jfree/chart/1.0.13/chart-1.0.13.pom from clojure
    Downloading: org/jfree/chart/1.0.13/chart-1.0.13.pom from clojars
    Downloading: org/jfree/chart/1.0.13/chart-1.0.13.pom from central
    Downloading: org/jfree/chart/1.0.13/chart-1.0.13.jar from central
    Downloading: org/jfree/chart/1.0.13/chart-1.0.13.jar from clojure
    Downloading: org/jfree/chart/1.0.13/chart-1.0.13.jar from clojars
    Downloading: org/jfree/chart/1.0.13/chart-1.0.13.jar from central
    An error has occurred while processing the Maven artifact tasks.
    Diagnosis:
    Unable to resolve artifact: Missing:
    ----------
    1) org.jfree:chart:jar:1.0.13
    Try downloading the file manually from the project website.
    

    .jarファイルを直接ダウンロードする必要があると思いますが、.jarファイルを取得したら、それをクラスパスに配置するようにleinを誘導して、emacsなどを使用してlein swankできるようにするにはどうすればよいですか?

  2. Dejcartesの例では使用しているので、project.clj(require '[com.markmfredrickson.dejcartes :as chart])に入れます。[com.markmfredrickson/dejcartes "1.0.0"]これは、実行するとダウンロードを開始するように見えますlein depsが、同じようにチョークします。

    C:\Users\me\code\Clojure\monty>lein deps
    Downloading: com/markmfredrickson/dejcartes/1.0.0/dejcartes-1.0.0.pom from central
    Downloading: com/markmfredrickson/dejcartes/1.0.0/dejcartes-1.0.0.pom from clojure
    Downloading: com/markmfredrickson/dejcartes/1.0.0/dejcartes-1.0.0.pom from clojars
    Downloading: com/markmfredrickson/dejcartes/1.0.0/dejcartes-1.0.0.pom from central
    Downloading: com/markmfredrickson/dejcartes/1.0.0/dejcartes-1.0.0.jar from central
    Downloading: com/markmfredrickson/dejcartes/1.0.0/dejcartes-1.0.0.jar from clojure
    Downloading: com/markmfredrickson/dejcartes/1.0.0/dejcartes-1.0.0.jar from clojars
    Downloading: com/markmfredrickson/dejcartes/1.0.0/dejcartes-1.0.0.jar from central
    An error has occurred while processing the Maven artifact tasks.
     Diagnosis:
    
    Unable to resolve artifact: Missing:
    ----------
    1) com.markmfredrickson:dejcartes:jar:1.0.0
    
    Try downloading the file manually from the project website.        
    

    (clojars)からダウンロードしているとされるリポジトリの1つには、大きなリストにDejcartesが表示されていません。LeinにDejcartesをダウンロードさせるにはどうすればよいですか?

  3. 最後に、パッケージの使用を開始したい場合、leinに最新バージョンを自動的に検索させるにはどうすればよいですか?これについては何も見ていません。すべてのproject.cljの例は、バージョンをハードコーディングしているようです"1.0.2"

どうもありがとう

マイケル

4

1 に答える 1

5

最初のステップは、取得したいライブラリの名前を見つけることです。Java ライブラリの場合は、おそらく Maven Central にあります。調べるには、Maven Central Searchに移動して、目的のライブラリを検索します。この場合、私はそこに行き、JFreeChart を検索しました。それは私にこれをくれまし。必要な jar がそこにリストされています。これらは、groupid、artifactid、および verison の 3 つの関連する部分に分かれています。groupid はスラッシュ (/) の前の部分、artifactid はスラッシュの後の部分、そして version は…まあ、バージョンです。これをまとめると、 が得られます[jfree/jfreechart "1.0.13"]

探しているライブラリが Clojure ライブラリである場合、それはおそらくclojarsにあります。その場合は、そこに移動して検索する必要があります。

dejcartes が見つからないという部分に答えるには、それは、leiningen、cake、maven、またはその他によって管理されていない古くて放棄されたライブラリであるためです。どのMavenリポジトリにもありません。まったく別の質問である自分でそこに置かない限り、そこに見つけることはできません。

3 番目の質問に答えるために、leiningen にはsearchさまざまなリポジトリを検索するタスクがあります。現在、Cake には clojar を検索するための同様のものがありますが、より一般的な Leiningen コードに基づいて書き直すことになるでしょう。

于 2011-10-25T10:04:10.777 に答える