当前特立尼达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)
这个问题显然已经在当前的ruby-rack(1.2)主分支中解决了,我想让特立尼达依赖于这个问题。
是否有办法从我的Gemfile中做到这一点?或者还有一个更简单的解决方案,而不是分叉Trinidad gem并指定一个不同版本的jruby-rack(并希望它能够工作,因为它可能无法工作)。
TL;您需要构建一个或两个项目,或者通过发布从jruby-rack
团队获得一些帮助。查看底部的构建步骤。
当前特立尼达版本(1.4.4和1.4.5B1预发行版)使用jruby-rack
和乐观版本(分别为>= 1.1.10
和>= 1.1.13
),因此任何满足此要求的依赖项(例如1.2.0)都将优先使用特立尼达。
不幸的是,由于JAR的打包方式,git:
或github:
依赖项将无法工作。你需要自己建造宝石。这还不算太糟——除了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版本。或者他们可能愿意从master做一个预发布。
我还没有测试过资产是否正常工作,但是构建和指定本地版本相对容易:
# 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并测试您的问题是否解决。