当前位置: 首页 > 知识库问答 >
问题:

clojure类路径(?)使用leiningen加载代码和依赖项时遇到的问题

孟杰
2023-03-14

我是一个Clojure和JVM初学者,构建工具对我来说有点混乱,所以请原谅我将要执行的愚蠢。我不知道“类路径”是什么...我只想要一个Lisp与许多库!

我使用lein new启动项目,并且我的project.clj具有以下依赖项:

 :dependencies [[org.clojure/clojure "1.6.0"] 
                 [clj-fuzzy "0.1.8"]
                 [snowball-stemmer "0.1.0"]
                 [net.mikera/core.matrix "0.50.0"]])

而来自my Core.clj的相关ns调用如下:

(ns blabber.core 
  (:require 
    [clojure.string :refer [lower-case split]]
    [clojure.walk :refer [keywordize-keys]]))

我的目录结构是leiningen用于新库的默认设置。

(ns blabber.core 
  (:require 
    [clojure.string :refer [lower-case split]]
    [clojure.walk :refer [keywordize-keys]]
    [clojure.core.matrix :refer [dataset]]))

我在Java 1.8.0_45上使用Leiningen 2.5.1。我只是在学习Core.Matrix的入门指南。

那发生了什么?为什么JVM找不到我的东西?救我?谢谢!

如果有帮助,下面是lein classpath输出的转储

我的所有代码都在blabber/src/blabber/core.clj中

共有1个答案

孔冥夜
2023-03-14

类路径是Java概念;Leiningen应该正确设置类路径。我怀疑的是目录、文件名或名称空间声明之间存在不匹配。文件路径应该是 /src/blabber/core.clj. 从您所写的内容看不清楚是否是这样。也可以先尝试运行lein deps,但不需要这样做。这和lein repl通常从目录(即项目根目录)运行。您可能需要在project.clj中使用:source-paths:main,但我不这样认为。

(使用'clojure.core.matrix)应该可以工作。为我工作,例如

(defproject blabber "0.1.0-SNAPSHOT"
  :dependencies [[org.clojure/clojure "1.8.0"]
  [net.mikera/core.matrix "0.50.0"]]). 
 类似资料:
  • 我对Clojure和Leiningen是新来的。刚开始工作一个现有的项目。我拉了回购并执行了Lein运行的命令。它抱怨说: “在clojars中找不到项目arcType:service.jose:jar:0.1.0-快照(https://repo.clojars.org/)无法将项目arcType:service.jar:0.1.0-快照从/传输到enonic(https://repo.enoni

  • Clojure/Leiningen/Eclipse(和Java)newby。我试图让Eclipse加载Clojure/Leiningen项目,但在搜索Lein插件解决方案时,我看到了令人困惑/矛盾的结果。 Eclipse IDE for Java开发者版本:Juno Service Release 2构建id:20130225-0426(Windows 8) 我在中有以下用户配置文件。lein\p

  • 但它似乎都很好,文件夹结构是正确的。 您正在运行禁用SSL/TLS保护的Composer。正在加载包含包信息的composer存储库警告:通过http访问packagist.org,这是一种不安全的协议。更新依赖项(包括require dev)无法将您的需求解析为一组可安装的包。 我将php重新安装到C:/php,我将php.ini文件提取到C:/I中,我设置了环境变量,还取消了扩展名的注释

  • 我在build.gradle文件中添加了下面的依赖项。Eclipse插件是在build.gradle中添加的。 一旦我运行gradle eclipse命令,所有的compile依赖项都会添加到类路径中,但是testcompile依赖项不会添加到类路径中。

  • 11.2 添加类路径依赖 Spring Boot提供了若干“启动器”,可以轻易地添加到类路径中。我们的示例程序在POM文件中的section部分已经使用了spring-boot-starter-parent。spring-boot-starter-parent是一个特殊的启动器,它提供了非常有帮助的Maven默认设置,还提供了dependency-management部分使得您可以省略依赖的ver

  • 我有一个Advision类,它使用了代理jar中的另一个类,但这个类依赖于代理jar中不存在的一个类。代理jar中不存在的这个类存在于应用程序类加载器上的另一个jar中。代理jar位于系统类加载器上。所以我没有遇到ClassDefounderRor。我已经尝试使用Transformer.forAdvise,这是在另一篇文章中建议的,但这只适用于Advise类。