gpt4 book ai didi

clojure - 添加clojure依赖并运行lein uberjar导致java.lang.IllegalAccessError

转载 作者:行者123 更新时间:2023-12-04 03:35:55 24 4
gpt4 key购买 nike

我是一名具有编写 PHP、python 和 ruby​​ 经验的新手工程师。我正在尝试为一个用 clojure 编写的项目做出贡献。我正在尝试向项目添加一个库,但在添加库并运行后 lein uberjar ,我收到一个错误。我想知道这意味着什么,以及您是否可以推荐一种方法来解决它。预先感谢您的帮助!

我正在努力实现的目标
包括 uap-clj library在我的项目中并将项目编译为 jarfile。

我写的
我已将该库添加为依赖项列表中的倒数第二项。

  :dependencies [[lots-of-dependencies]
[uap-clj "1.1.1"] ; user agent parser
[another-dependency]]

我在 lein 跑什么
According to the instructions on github , 将更改保存到 project.clj 后,我运行 lein deps然后 lein clean && lein uberjar .

发生了什么
更新并保存文件后,在长堆栈跟踪之前运行该命令会出现以下错误:
java.lang.IllegalAccessError: tried to access method clojure.lang.RT.classForNameNonLoading(Ljava/lang/String;)Ljava/lang/Class; from class clj_yaml.core$loading__5340__auto____29, compiling:(flexmaster.clj:1:1)

我还尝试了什么
我想测试我是否在添加库时犯了错误。我从头开始创建了一个新的 clojure 项目,并使用 lein deps 创建了一个 jarfile然后 lein uberjar .接下来,我将 uap-clj 添加到我新项目的 :dependencies 中,保存 project.clj,并执行 lein depslein uberjar再次。我能够成功创建一个 jarfile,所以我相信我正确地添加了库。

我想不出包含另一个依赖项的行为会阻止我创建 jarfile 的另一个原因。如果您能根据我提供的信息想到我应该检查的内容,那将对我很有帮助。谢谢!

最佳答案

看起来引用的库依赖于 Clojure 1.7.0,但您明确引用了 1.6.0 版。

尝试改变:

[org.clojure/clojure "1.6.0"]

到:
[org.clojure/clojure "1.7.0"]

或者,您可以引用不依赖于 Clojure 1.7.0 的旧版本库,例如: [uap-clj "1.0.1"]

关于clojure - 添加clojure依赖并运行lein uberjar导致java.lang.IllegalAccessError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34033192/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com