4

当前的 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 更简单的解决方案(并希望它可以工作,因为它可能不会)。

4

1 回答 1

2

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


当前的 Trinidad 版本(1.4.4和 1.4.5B1 预发布版)使用jruby-rack乐观版本控制(>= 1.1.10>= 1.1.13,分别),因此任何满足此要求的依赖项(例如,1.2.0)都将优先考虑,而不会触及 Trinidad。

不幸的是,由于 JAR 的打包方式,a git:orgithub:依赖项将不起作用。您需要自己构建 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

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

于 2013-03-28T20:37:22.827 回答