2

我正在开发一个使用 DataMapper 和 google-api gems 的项目。当尝试使用 shotgun 或 Thin 运行项目时,出现错误。运行 bundler 或项目会引发错误,指出 DataMapper 使用可寻址版本 2.4.1,而 google-api-client gem 使用可寻址 2.4.5(版本可能不完全正确,因为我是从内存中编写的)。

我对 ruby​​ 还很陌生,但我想这种冲突很常见,可能有一种惯用的方法来处理这个问题。我显然可以分叉任何一个项目并尝试更新/回滚可寻址的冲突,但这似乎是正确的方法。

update:: 这是在需要 dataMapper 之后尝试在 irb 中需要 google-api gem 的结果

1.9.3p194 :004 > require 'google/api_client' Gem::LoadError: Unable to activate google-api-client-0.4.6, because addressable-2.2.6 conflicts with addressable (>= 2.3.2)

4

1 回答 1

1

没有惯用的方法来处理这个问题。datamapper 对 addressable 的依赖只是旧的,bundler 找不到兼容的版本。

据我了解可寻址Changelog的更改,自可寻址 2.2.6 以来没有影响 dm-core 的破坏性 API 更改。可以更新 Datamapper 以使用更新版本的可寻址。

datamapper 1.x 分支的开发已经停止。我们正在积极开发 datamapper-2.0。

在 github 上 datamapper 的“release-1.2”分支中,依赖项已经更新。您可以通过 Gemfile 使用此分支:

gem 'dm-core', :git => 'https://github.com/datamapper/dm-core', :branch => 'release-1.2'

此分支声明与可寻址 2.x 但大于 2.3 的兼容性。您应该能够使用此分支解决您的依赖问题。

于 2012-11-20T23:10:53.573 回答