【问题标题】:Simplest way to have trinidad depend on an alternate version of jruby-rack?拥有 trinidad 的最简单方法取决于 jruby-rack 的替代版本?
【发布时间】:2013-03-12 19:57:11
【问题描述】:

当前的 Trinidad gem 依赖于 jruby-rack 1.1.0,对于我的每一项资产,我的开发日志中都会显示一些错误

/Users/bijan/.rvm/gems/jruby-1.7.3/gems/rack-1.4.5/lib/rack/utils.rb:399 warning: multiple values for a block parameter (2 for 1)

这个问题显然已经在当前的 jruby-rack (1.2) master 分支中解决了,我想让 trinidad 依赖这个。

有没有办法从我的 Gemfile 中做到这一点?或者比分叉 Trinidad gem 并指定不同版本的 jruby-rack 更简单的解决方案(并希望它可以工作,因为它可能不起作用)。

【问题讨论】:

  • 这个问题也让我抓狂。有人回答了吗?

标签: jruby jrubyonrails jruby-rack trinidad-gem


【解决方案1】:

TL;DR - 不是真的。您需要构建一个或两个项目,或者通过发布从jruby-rack 团队获得一些帮助。构建步骤见底部。


当前的 Trinidad 版本(1.4.4 和 1.4.5B1 预发布版)使用带有乐观版本控制的 jruby-rack(分别为 >= 1.1.10>= 1.1.13),因此任何满足此要求的依赖项(例如 1.2.0)都会在不触及特立尼达的情况下获得优先权。

不幸的是,由于 JAR 的打包方式,git:github: 依赖项将不起作用。您需要自己build the gem。这还不错——除了工作的 JDK/JRuby 设置之外,您真的只需要 Maven。

一旦jruby-rack 与更改一起构建/发布,将能够在您的 Gemfile 中指定一个可行的版本(假设它的版本为 1.2.0):

gem 'jruby-rack', '~> 1.2.0'
gem 'trinidad'

也许jruby-rack 团队可以将此特定更改反向移植到 1.1.13 维护行,并在不引入不兼容性的情况下推送 1.1.13.2 版本。或者他们可能愿意从大师那里做一个预发布。


我还没有测试过资产是否可以正常工作,但是构建和指定本地版本相对容易:

# Assuming mvn is on the path, JRuby is active, and you
# have gem install permissions:
git clone https://github.com/jruby/jruby-rack.git
cd jruby-rack
bundle install
bundle exec rake clean gem SKIP_SPECS=true
gem install --local target/jruby-rack-1.2.0.SNAPSHOT.gem

在此之后,您可以在 Gemfile 中使用gem 'jruby-rack', '~> 1.2.0.SNAPSHOT' 来满足 Trinidad 并测试您的问题是否得到解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-03
    • 2022-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多