2013-02-08 1 views
1

지금 시간을 시험해보고 문제를 파악할 수 없습니다. 새로운 clojure를 사용하고 간단한 flickr 클라이언트를 만들려고합니다. 하지만 다른 라이브러리에서이 문제가 있습니다 ... 나는 일반적인 실수를 저지른다고 생각합니다. 나는이 lib 디렉토리에 OAuth를 사용하려고 순간 clojure - 오류를 찾을 수 없습니까?

: https://github.com/mattrepl/clj-oauth

lein new projectname 

내 project.clj은 다음과 같습니다 다음 CLJ-으로 OAuth2를 추가 한 후

(defproject flickr "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.4.0"] 
       [clj-oauth "1.4.0"]]) 

나는 실행

lein deps 

내 core.clj :

01 23,516,
(ns flickr.core) 
    (require ['oauth.client :as 'oauth]) 


(def consumer-key "0000") 
(def consumer-secret "0000") 

(def consumer (oauth.client/make-consumer <consumer-token> 
           <consumer-token-secret>        
           "http://www.flickr.com/services/oauth/request_token" 
           "http://www.flickr.com/services/oauth/access_token" 
           "http://www.flickr.com/services/oauth/authorize" 
           :hmac-sha1)) 

지금은 그것을 실행하려고하면 :

lein run 

내가 얻을 :

FileNotFoundException Could not locate oauth/client__init.class or oauth/client.clj on classpath: clojure.lang.RT.load (RT.java:432) 

사람이 문제가 생각을 가지고 있습니까? 또한 github repo에서 oauth 소스를 다운로드하고 빌드 한 다음 $ PATH 변수에 추가했지만 여전히 동일한 오류가 발생합니다.

도움이 될 것입니다. 감사합니다.

답변

2

먼저 lein run:main 키를 사용하여 project.clj에 이름을 지정해야하는 기본 네임 스페이스를 찾습니다. :main flickr.core을 입력하십시오..

flickr.core-main 함수가 필요합니다. 네임 스페이스 선언을 변경하고 다음과 같이 함수를 추가 : 다음

(ns flickr.core 
    (:require [clj-oauth2.client :as oauth])) 

(defn -main [] 
    (println oauth/get-access-token)) 

,

$ lein run 
;=> #<client$get_access_token [email protected]> 
의 일종으로 나를 위해 일한

"네임 스페이스 연기 테스트,"당신은 거기에서 갈 수 있어야한다 .

은 (최종 참고로, 개발이 오히려 사용하여보다 REPL에서 사물의 이러한 종류의 테스트를하면 훨씬 더 빨리 갈 것 'lein 실행.')

+0

소리가 잘 들립니다. 나는 그것을 내일 시험해 볼 것이다. – Nico

1

당신의 의존성과의 혼동이있을 나타납니다. Clojars에 따르면, clj-oauth2을 사용하는 라이브러리는이 GitHub 프로젝트 https://github.com/DerGuteMoritz/clj-oauth2이며 질문에 링크 된 라이브러리가 아닙니다.

최신 clj-oauth을 원할 경우 종속성은 [clj-oauth "1.4.0"] (최신 버전)이어야합니다. clj-oauth2이 필요하면 위의 GitHub 링크를 참조해야합니다.

+0

그 힌트를 가져 주셔서 감사합니다. 실제로 clj-oauth를 사용합니다. clj-oauth2는 이전 테스트에서 나왔습니다. – Nico