首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >clojure lein jar冲突解决过程

clojure lein jar冲突解决过程
EN

Stack Overflow用户
提问于 2013-06-08 11:20:12
回答 1查看 199关注 0票数 1

我创建了一个新项目

代码语言:javascript
复制
lein new jar-clash-test
cd jar-clash-test/

我已经在project.clj中放置了以下内容

代码语言:javascript
复制
(defproject jar-clash-test "0.1.0-SNAPSHOT"
  :dependencies [[org.clojure/clojure "1.5.0"]
                 [io.pedestal/pedestal.service "0.1.2"]
                 ...]
  :main ^{:skip-aot true} jar-clash-test.core
)

我将以下内容放入jar-clash-test/src/jar_clash_test/core.clj中

代码语言:javascript
复制
(ns jar-clash-test.core
  (:require [io.pedestal.service.http :as bootstrap]))

当我用

代码语言:javascript
复制
lein repl

我得到以下错误:

代码语言:javascript
复制
CompilerException java.lang.RuntimeException: No such var: content-type/content-type-response, compiling:(io/pedestal/service/http/ring_middlewares.clj:46:3)

当我看到:

代码语言:javascript
复制
/.m2/repository/io/pedestal/pedestal/0.1.2/pedestal.service-0.1.2/io/ring_middlewares.clj

在第46行,我看到:

代码语言:javascript
复制
  (leave-interceptor ::content-type-interceptor content-type/content-type-response opts))

在要求中将其定义为:

代码语言:javascript
复制
[ring.middleware.content-type :as content-type]

这意味着它正在尝试引入环形中间件jar。

我的假设是,环形中间件实现存在jar版本冲突。

这是基于:

  1. 环/环芯上的"1.1.3"2构成--1.1.5
  2. ring.基座/基座.服务"0.1.2"3.环/环-芯“1.2.0beta1”

当我看到:

代码语言:javascript
复制
/.m2/repository/ring/ring-core/1.2.0-beta1/ring-core-1.2.0-beta1/ring/middleware/content_type.clj

功能

代码语言:javascript
复制
(defn content-type-response

存在。当我看到:

代码语言:javascript
复制
/.m2/repository/ring/ring-core/1.1.5/ring-core-1.1.5/ring/middleware/content_type.clj

这个函数不存在。

我的问题是-我怎么知道莱恩选了哪个版本?我可以“假设”它已经找到了早期的--但我怎么能确定?

我的第二个问题是-我如何保证哪一个莱恩会选择?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-08 13:43:58

您可以使用lein classpath来获取项目类路径的计算值的打印输出。更早的罐子赢了。另一种方法:在REPL中检查(System/getProperty "java.class.path")的值。

如果您想手动选择一个间接依赖项的版本,那么将其直接添加到您的project.clj中;然后这个条目将覆盖该项目上下文中的依赖项的选择。或者,您可以将:exclusions添加到除一个依赖项之外的所有依赖项中,这些依赖项将导致间接依赖项被拉进来。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16998992

复制
相关文章

相似问题

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