- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个依赖项(cookie 实用程序)的项目依赖于 iron >= 0.3, <= 0.4
.
我的项目依赖于 iron 0.3
(所以我可以使用尚未更新到最新 iron 的 router
中间件)。
当我尝试编译我的项目时,cookie 实用程序提取 0.4
iron 的版本,并且由于使用了不同版本的 iron,我会收到错误消息。
但是,我可以这样做:
cargo update -p <cookie utility>
这(通常)改变了包对 iron 的依赖以匹配我正在使用的包,并消除了对 iron 的无关依赖 0.4
. (奇怪的是,有时我必须在更新之前运行该命令几次。)
显然我无法指定依赖项的依赖版本:Set specific version of the dependency of a project's dependency in Cargo.toml or Cargo.lock .
如果 cargo 能猜到我想使用单一版本的铁就好了,但我明白为什么它不能。但是,我很困惑为什么 cargo update -p <package>
实际工作;更新包的依赖项似乎不直观。
我想我的第一个真正的问题是:如何指定依赖项的依赖版本(当且仅当我想要的版本在该库的支持版本范围内时)?我不认为上面链接的问题中建议的解决方案是理想的。我觉得如果 Cargo 能够很好地支持这一点会更好,这样库就可以在其功能允许的范围内保持其依赖版本范围尽可能开放。
与此同时,我发现这个“技巧”似乎可以满足我的要求 ( cargo update -p <pkg>
)。我没有仔细看,但似乎没有在任何明显的地方描述这种行为。我的第二个问题是:这是合并依赖关系的有效方法吗?有什么地方可以找到有关此的更多信息?
重现步骤:
cargo new --bin ironapp
; cd ironapp
.cargo new cookie_util
.cookie_util/Cargo.toml
添加一个依赖项:iron = ">= 0.3, <= 0.4"
.Cargo.toml
添加两个依赖项:iron = "0.3.0"
和 cookie_util = { path = "cookie_util"}
.cargo build
.确认 Cargo.lock
中需要两个版本的铁.cargo update -p cookie_util
1 到 4(或更多)次之间的任何地方。最终它将删除对 iron 0.4.0
的依赖。 .我刚刚在 rustc-1.10.0/cargo-0.11.0 上测试了这个。我确定 target
和 Cargo.lock
在第 1 步开始时均不存在。
最佳答案
通读 cargo/issues/2064 的评论, 我意识到解决这些类型的依赖关系的更可靠的方法是使用 --precise
旗帜。以我为例,
cargo update -p iron:0.4.0 --precise 0.3.0
删除不必要的依赖。这需要深入研究 Cargo.lock
并手动确定依赖项可以收敛的位置,但比运行 cargo update -p <pkg>
要好得多并希望最好,或手动编辑 Cargo.lock
.
关于rust - 巩固 cargo 依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38574874/
我正在尝试使用 Thymeleaf 来巩固一对多关系。让我们保持简单。我确实有一个 thiesis,thiesis 有一些问题。 @Entity public class Thiesis {
我有一个依赖项(cookie 实用程序)的项目依赖于 iron >= 0.3, 这(通常)改变了包对 iron 的依赖以匹配我正在使用的包,并消除了对 iron 的无关依赖 0.4 . (奇怪的是,
我只是想固化(确定)什么是js对象、方法和属性。到目前为止,这是我自己的观点,但我几乎没有怀疑,这就是为什么我来这里是为了了解并证明我需要的是真实的。 var property= "is this a
我是一名优秀的程序员,十分优秀!