【问题标题】:Error when attempting to compile clojurescript尝试编译 clojurescript 时出错
【发布时间】:2013-11-17 20:34:49
【问题描述】:

我正在尝试编译 clojurescript,但由于某种原因,我遇到了“get_file_name”错误。有人遇到过这个吗?

~/cosmos/cljs-todo
❯ lein cljsbuild auto
Compiling ClojureScript.
Retrieving prismatic/dommy/0.1.1/dommy-0.1.1.pom from clojars
Retrieving crate/crate/0.2.3/crate-0.2.3.pom from clojars
Retrieving prismatic/cljs-test/0.0.5/cljs-test-0.0.5.pom from clojars
Retrieving org/clojure/clojurescript/0.0-1934/clojurescript-0.0-1934.pom from central
Retrieving org/clojure/clojurescript/0.0-1934/clojurescript-0.0-1934.jar from central
Retrieving org/clojure/tools.reader/0.7.9/tools.reader-0.7.9.jar from central
Retrieving crate/crate/0.2.3/crate-0.2.3.jar from clojars
Retrieving prismatic/cljs-test/0.0.5/cljs-test-0.0.5.jar from clojars
Retrieving prismatic/dommy/0.1.1/dommy-0.1.1.jar from clojars
Reflection warning, clojure/tools/reader/reader_types.clj:34:1 - reference to field get_file_name can't be resolved.
Exception in thread "main" java.lang.IllegalArgumentException: Can't define method not in interfaces: get_file_name, compiling:(clojure/tools/reader/reader_types.clj:107:1)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6567)
    at clojure.lang.Compiler.analyze(Compiler.java:6361)
    at clojure.lang.Compiler.analyze(Compiler.java:6322)
    at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5708)
    at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:6009)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6560)
    at clojure.lang.Compiler.analyze(Compiler.java:6361)
    at clojure.lang.Compiler.analyze(Compiler.java:6322)
    at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5708)
    at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5139)
    at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3751)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6558)
    at clojure.lang.Compiler.analyze(Compiler.java:6361)
    at clojure.lang.Compiler.eval(Compiler.java:6616)
    at clojure.lang.Compiler.load(Compiler.java:7064)
    at clojure.lang.RT.loadResourceScript(RT.java:370)
    at clojure.lang.RT.loadResourceScript(RT.java:361)
    at clojure.lang.RT.load(RT.java:440)
    at clojure.lang.RT.load(RT.java:411)
    at clojure.core$load$fn__5018.invoke(core.clj:5530)
    at clojure.core$load.doInvoke(core.clj:5529)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5336)
    at clojure.core$load_lib$fn__4967.invoke(core.clj:5375)
    at clojure.core$load_lib.doInvoke(core.clj:5374)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:619)
    at clojure.core$load_libs.doInvoke(core.clj:5413)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:621)
    at clojure.core$use.doInvoke(core.clj:5507)
    at clojure.lang.RestFn.invoke(RestFn.java:421)
    at clojure.tools.reader$eval125$loading__4910__auto____126.invoke(reader.clj:9)
    at clojure.tools.reader$eval125.invoke(reader.clj:9)
    at clojure.lang.Compiler.eval(Compiler.java:6619)
    at clojure.lang.Compiler.eval(Compiler.java:6608)
    at clojure.lang.Compiler.load(Compiler.java:7064)
    at clojure.lang.RT.loadResourceScript(RT.java:370)
    at clojure.lang.RT.loadResourceScript(RT.java:361)
    at clojure.lang.RT.load(RT.java:440)
    at clojure.lang.RT.load(RT.java:411)
    at clojure.core$load$fn__5018.invoke(core.clj:5530)
    at clojure.core$load.doInvoke(core.clj:5529)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5336)
    at clojure.core$load_lib$fn__4967.invoke(core.clj:5375)
    at clojure.core$load_lib.doInvoke(core.clj:5374)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:619)
    at clojure.core$load_libs.doInvoke(core.clj:5413)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:619)
    at clojure.core$require.doInvoke(core.clj:5496)
    at clojure.lang.RestFn.invoke(RestFn.java:482)
    at cljs.compiler$eval119$loading__4910__auto____120.invoke(compiler.clj:11)
    at cljs.compiler$eval119.invoke(compiler.clj:11)
    at clojure.lang.Compiler.eval(Compiler.java:6619)
    at clojure.lang.Compiler.eval(Compiler.java:6608)
    at clojure.lang.Compiler.load(Compiler.java:7064)
    at clojure.lang.RT.loadResourceScript(RT.java:370)
    at clojure.lang.RT.loadResourceScript(RT.java:361)
    at clojure.lang.RT.load(RT.java:440)
    at clojure.lang.RT.load(RT.java:411)
    at clojure.core$load$fn__5018.invoke(core.clj:5530)
    at clojure.core$load.doInvoke(core.clj:5529)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5336)
    at clojure.core$load_lib$fn__4967.invoke(core.clj:5375)
    at clojure.core$load_lib.doInvoke(core.clj:5374)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:619)
    at clojure.core$load_libs.doInvoke(core.clj:5413)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:619)
    at clojure.core$require.doInvoke(core.clj:5496)
    at clojure.lang.RestFn.invoke(RestFn.java:512)
    at cljs.closure$eval111$loading__4910__auto____112.invoke(closure.clj:9)
    at cljs.closure$eval111.invoke(closure.clj:9)
    at clojure.lang.Compiler.eval(Compiler.java:6619)
    at clojure.lang.Compiler.eval(Compiler.java:6608)
    at clojure.lang.Compiler.load(Compiler.java:7064)
    at clojure.lang.RT.loadResourceScript(RT.java:370)
    at clojure.lang.RT.loadResourceScript(RT.java:361)
    at clojure.lang.RT.load(RT.java:440)
    at clojure.lang.RT.load(RT.java:411)
    at clojure.core$load$fn__5018.invoke(core.clj:5530)
    at clojure.core$load.doInvoke(core.clj:5529)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5336)
    at clojure.core$load_lib$fn__4967.invoke(core.clj:5375)
    at clojure.core$load_lib.doInvoke(core.clj:5374)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:619)
    at clojure.core$load_libs.doInvoke(core.clj:5413)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:621)
    at clojure.core$use.doInvoke(core.clj:5507)
    at clojure.lang.RestFn.invoke(RestFn.java:436)
    at cljsbuild.compiler$eval9$loading__4910__auto____10.invoke(compiler.clj:1)
    at cljsbuild.compiler$eval9.invoke(compiler.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:6619)
    at clojure.lang.Compiler.eval(Compiler.java:6608)
    at clojure.lang.Compiler.load(Compiler.java:7064)
    at clojure.lang.RT.loadResourceScript(RT.java:370)
    at clojure.lang.RT.loadResourceScript(RT.java:361)
    at clojure.lang.RT.load(RT.java:440)
    at clojure.lang.RT.load(RT.java:411)
    at clojure.core$load$fn__5018.invoke(core.clj:5530)
    at clojure.core$load.doInvoke(core.clj:5529)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5336)
    at clojure.core$load_lib$fn__4967.invoke(core.clj:5375)
    at clojure.core$load_lib.doInvoke(core.clj:5374)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:619)
    at clojure.core$load_libs.doInvoke(core.clj:5413)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:619)
    at clojure.core$require.doInvoke(core.clj:5496)
    at clojure.lang.RestFn.invoke(RestFn.java:436)
    at user$eval5.invoke(form-init5747593974752525212.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:6619)
    at clojure.lang.Compiler.eval(Compiler.java:6608)
    at clojure.lang.Compiler.load(Compiler.java:7064)
    at clojure.lang.Compiler.loadFile(Compiler.java:7020)
    at clojure.main$load_script.invoke(main.clj:294)
    at clojure.main$init_opt.invoke(main.clj:299)
    at clojure.main$initialize.invoke(main.clj:327)
    at clojure.main$null_opt.invoke(main.clj:362)
    at clojure.main$main.doInvoke(main.clj:440)
    at clojure.lang.RestFn.invoke(RestFn.java:421)
    at clojure.lang.Var.invoke(Var.java:419)
    at clojure.lang.AFn.applyToHelper(AFn.java:163)
    at clojure.lang.Var.applyTo(Var.java:532)
    at clojure.main.main(main.java:37)
Caused by: java.lang.IllegalArgumentException: Can't define method not in interfaces: get_file_name
    at clojure.lang.Compiler$NewInstanceMethod.parse(Compiler.java:7911)
    at clojure.lang.Compiler$NewInstanceExpr.build(Compiler.java:7471)
    at clojure.lang.Compiler$NewInstanceExpr$DeftypeParser.parse(Compiler.java:7352)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6560)
    ... 134 more
Subprocess failed

【问题讨论】:

  • 您可以添加有关您正在使用的版本的详细信息吗?

标签: java maven clojure clojurescript


【解决方案1】:

这很可能是版本冲突。例如,您正在使用旧版本:

  • [crate "0.2.3"],当前是"0.2.4"
  • [org.clojure/tools.reader "0.7.9"],当前是"0.7.10"
  • [org.clojure/clojurescript "0.0-1934"],当前是"0.0-2030"
  • ...

由于您的问题目前(没有编辑),它没有足够的详细信息来说明您尝试使用哪些版本,但这里有一个工作的示例,当前project.clj 使用了所有ClojureScript 的优点与所有版本对齐:

(defproject xyz "0.1.0-SNAPSHOT"
  :description "xyz is such and such"
  :url "https://github.com/tolitius/xyz"

  :dependencies [[org.clojure/clojure "1.5.1"]
                 [compojure "1.1.6"]
                 [hiccup "1.0.4"]
                 [crate "0.2.4"]
                 [jayq "2.5.0"]
                 [org.clojure/clojurescript "0.0-2030"]]

  :plugins [[lein-ring "0.8.8"]
            [lein-cljsbuild "1.0.0-alpha2"]]

  :hooks [leiningen.cljsbuild]

  :cljsbuild {
    :builds [{:source-paths ["src"]
              :compiler {:output-to "resources/public/js/xyz.js"
                         :optimizations :whitespace
                         :pretty-print true
                         :source-map "resources/public/js/xyz.js.map"
                         }}]}

  :ring {:handler auqlue.handler/app}

  :profiles
    {:dev {:dependencies [[javax.servlet/servlet-api "2.5"]
                          [ring-mock "0.1.5"]]}})

如果您要快速了解新的 ClojureScript 项目,请查看 David Nolen 的 mies

【讨论】:

    【解决方案2】:

    问题最终出现在我的 lein 个人资料中。

    出于某种我不记得的奇怪原因,我正在拉入 [org.clojure/core.typed "0.2.4"]。在我删除该依赖项后,它终于起作用了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多