簡體   English   中英

使用lein構建clojure項目時出錯

[英]Error building clojure project with lein

我對clojure一點都不熟悉,而且我有一個我正在嘗試構建的項目的源代碼。 該項目有一個project.clj文件,谷歌說這意味着我應該使用lein構建工具。 然而:

$ lein compile #lein jar does the same thing
Exception in thread "main" java.lang.RuntimeException: java.io.FileNotFoundException: Could not locate testui/core__init.class oCompiling testui.core
r testui/core.clj on classpath

我懷疑project.clj可能會被破壞。 core.clj位於src / com / foodient / semanticanalysis / testui中,project.clj如下所示:

(defproject testui "1.0.0-SNAPSHOT"
  :description "FIXME: write description"
  :dependencies [[org.clojure/clojure "1.3.0"]
                 [org.apache.poi/poi "3.8-beta4"]
                 [gate-clj "1.0.0"]]
  :aot [testui.core]
  :main testui.core
  :run-aliases {:test testui.core/-main})

有任何想法嗎?

如果你設置了一個lein項目並且名字中包含了Clojuristic破折號,比如bene-csv(我的一個),那么lein new bene-csv會創建幾個目錄和./bene-csv/project.clj 我的core.clj位於./bene-csv/src/bene_csv/core.clj 請注意,破折號在bene_csv中刪除,以支持下划線。

至於你的問題,很可能core.clj不在lein預期的地方,應該是./testui/src/testui/core.clj 我希望這有幫助。

我認為問題是core.clj不在正確的目錄中。 它應該在src / testui目錄中。

我的猜測是你應該改變你的代碼的引用

testui.core

com.foodient.semanticanalysis.testui.core

原因是最后一個點之前的命名空間部分對應於一個包名(該術語來自java和jvm)

您表明您的來源是:

src/com/foodient/semanticanalysis/testui

所以包名是com.foodient.semanticanalysis.testui

您可能還應該更新clojure源文件中的命名空間聲明以匹配此約定(或將源移動到src/testui )。

希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM