2012-07-29 85 views
1

我正在運行Debian Wheezy,openjdk-7-jre,clojure 1.4.0和leiningen-1.7.1,它們都是從官方的repo安裝的。如何從項目的stax-utils依賴關係中排除tagsoup?

我有這樣的project.clj:

(defproject guess-film "1.0.0-SNAPSHOT" 
    :description "FIXME" 
    :dependencies [ 
    [org.clojure/clojure "1.4.0"], 
    [clj-http "0.5.0"], 
    [clj-tagsoup "0.3.0" :exclusions [net.java.dev.stax-utils/stax-utils]] 
    ] 
    :main guess-film.core 
) 

正如你可以在那個階段我排除STAX-utils的,其實這是CLJ-tagsoup Github的頁面上看到描述。

然後,我有這個SRC /推測膜/ core.clj:

ns guess-film.core 
    (:require 
     [clj-http.client :as client] 
     [pl.danieljanus.tagsoup :as parser :refer [parse parse-string]] :verbose 
    ) 
) 

當我嘗試

lein repl 

它崩潰,我相信是因爲不滿意STAX-utils軟件包:

... 
(clojure.core/load "/pl/danieljanus/tagsoup") 
(clojure.core/load "/clojure/zip") 
(clojure.core/in-ns 'pl.danieljanus.tagsoup) 
(clojure.core/alias 'zip 'clojure.zip) 
(clojure.core/load "/clojure/xml") 
(clojure.core/in-ns 'pl.danieljanus.tagsoup) 
(clojure.core/alias 'xml 'clojure.xml) 
(clojure.core/load "/clojure/data/xml") 
(clojure.core/in-ns 'clojure.data.xml) 
(clojure.core/alias 'str 'clojure.string) 
(clojure.core/in-ns 'pl.danieljanus.tagsoup) 
(clojure.core/alias 'lazy-xml 'clojure.data.xml) 
ClassNotFoundException javanet.staxutils.ContentHandlerToXMLEventWriter java.net.URLClassLoader$1.run (URLClassLoader.java:366) 

我試圖通過使用引用來避開lazy-xml的加載,但這並不工作,我猜想。我也嘗試過「:use ...:only [parse parse-string]」,但都沒有成功。

我只是不喜歡加載什麼,我不打算使用:)

難道它會嘗試反正加載懶XML CLJ-tagsoup失敗? 如果我無法擺脫這種依賴關係,它會不會是一次性能打擊?

回答

1

它是一個導入javanet.staxutils.Content ...類的clj-tagsoup,所以我不認爲你可以對此做很多事情。

它不會有任何性能問題,只是加載另一個類,它不會產生太大的區別,它也不會使用太多的內存。