首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >克洛尔的:要求和因斯塔帕尔斯

克洛尔的:要求和因斯塔帕尔斯
EN

Stack Overflow用户
提问于 2013-07-02 17:44:04
回答 2查看 1.5K关注 0票数 3

我正在尝试在我的clojure项目中使用雌虫库。我在我的项目依赖项中使用了leiningen 2.0和clojure 1.5.1。我将instaparse添加到我的项目依赖项中,如下所示:

代码语言:javascript
复制
(defproject bachelor "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.5.1"]
         [org.clojure/clojure-contrib "1.2.0"]
         [instaparse "1.1.0"]])

这是我的消息来源,我试图要求这个库:

代码语言:javascript
复制
(ns bachelor.data
  (:require [clojure.string :as str])
  (:require [instaparse.core :as insta])
  (:use [clojure.contrib.generic.math-functions])
  )

当我试图编译时,会收到以下错误消息:

cd c:/学士/src/单身汉/数据/1编译器注释: 未知位置: java.io.FileNotFoundException:无法找到classpath上的instaparse/core_init.class或instaparse/core.clj: company.clj:1:1: java.io.FileNotFoundException:无法在类路径上找到instaparse/core_init.class或instaparse/core.clj:(company.clj:1) 编译失败。

我检查了我的项目的类路径,我认为应该在那里找到实例。

莱茵类路径 C:\bachelor\test;C:\bachelor\src;C:\bachelor\dev-resources;C:\bachelor\resources;C:\bachelor\target\classes;C:\Users\Maciej.m2\repository\instaparse\instaparse\1.1.0\instaparse-1.1.0.jar;C:\Users\Mac iej.m2\repository\org\clojure\clojure-contrib\1.2.0\clojure-contrib-1.2.0.jar;C:\Users\Maciej.m2\repository\org\clojure\clojure\1.5.1\clojure-1.5.1.jar

知道我做错了什么吗?

更新

我更新了莱茵类路径的结果。早些时候,我已经贴上了旧的结果。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-03 14:17:47

我发现了出了什么问题。我是用leiningen创建项目的,但是用Clojure-box或Clooj开发源代码。我还试图用这些工具编译我的源代码,这是错误的。当您运行这样的IDE时,它会加载属于自己的类路径,这就是为什么它找不到我想要使用的库。现在,我将src编译为

莱茵编译

然后在里面运行

莱恩瑞尔

一切都很顺利。

票数 0
EN

Stack Overflow用户

发布于 2013-07-02 19:43:52

下面是一个工作示例项目:

project.clj:

代码语言:javascript
复制
(defproject parse "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.5.1"]
                 [instaparse "1.1.0"]])

您不需要用于cont肋骨的行,string现在已经内置到clojure中了。

src/parse/core.clj:

代码语言:javascript
复制
(ns parse.core
  (:require [instaparse.core :as insta]
            [clojure.string :as str]))
(def as-and-bs
  (insta/parser
   "S = AB*
     AB = A B
     A = 'a'+
     B = 'b'+"))

雷普:

代码语言:javascript
复制
#<Namespace parse.core>
parse.core>  (as-and-bs "aaaaabbbaaaabb")
[:S [:AB [:A "a" "a" "a" "a" "a"] [:B "b" "b" "b"]] [:AB [:A "a" "a" "a" "a"] [:B "b" "b"]]]
parse.core> (str/join "," ["a" "b" "c"])                                                                                                                                  
"a,b,c" 

我的Liningen怪异解决清单:

  • 运行lein并重新启动nrepl/emacs
  • lein清理和重新启动nrepl/emacs
  • 删除本地库dir (leinv1.x)
  • 移除本地maven存储库并运行lein dep
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17432282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档