Clojure调用java版淘宝API的SDK

Clojure调用java是非常简单的,总结一下作为新手碰到的问题:

添加本地jar依赖

这个SDK是没有在Maven Repo上的,从淘宝开放平台下载最新版的sdk-java-12195125.zip,解压得到两个jar(其中一个是source版的)。

下面就借助lein-localrepo这个插件将这个jar按照到maven仓库(lein-localrepo的安装参考[https://github.com/kumarshantanu/lein-localrepo])

首先将解压出来的jar改名为com.taobao.api-20160822.jar(为了跟其他库看起来一样),然后执行lein localrepo coords ~/Downloads/sdk-java-12195125/com.taobao.api-20160822.jar会输出/Users/13k/Downloads/sdk-java-12195125/com.taobao.api-20160822.jar com.taobao.api/com.taobao.api 20160822,后面那两个就是我们添加到maven仓库和project.clj :dependencies里的库名和版本。

然后执行lein localrepo install ~/Downloads/sdk-java-12195125/com.taobao.api-20160822.jar com.taobao/api 20160822,将jar 添加到本地Maven仓库中,注意最后两个参数是上一步执行coords输出的库名和版本号。

jar安装到Maven仓库之后将[commons-logging/commons-logging "1.2"][com.taobao/api "20160822"]添加到project.clj之后即可进行lein deps

import的问题

在完成上面准备之后启动REPL发现提示ClassNotFound的提示,一轮Google之后找不到答案,不过还好有面向QQ群编程,最终群里大神帮忙解决。我在core.clj的ns中使用import导入api,这个导致了前面的错误,正确的写法应该是使用:import并且不用quote,import在ns外面是可以正常导入api的。

终于可以愉快的使用API取数啦。

你可能感兴趣的:(Clojure调用java版淘宝API的SDK)