本地安装使用platform=java|JRuby 1.7.18构建的gem



当gemspec具有platform="java"时,我用于在本地构建和安装gem的工作流似乎无法转换。

我使用的是Jruby 1.7.18,安装了rvm

$ which gem
/Users/USERNAME/.rvm/rubies/jruby-1.7.18/bin/gem

当我用默认平台构建一个gem时,一切都按计划进行:

$ grep platform batching_core.gemspec 
  # spec.platform      = "java"
$ gem build batching_core.gemspec 
  Successfully built RubyGem
  Name: batching_core
  Version: 0.1.0
  File: batching_core-0.1.0.gem
$ gem install batching_core-0.1.0.gem 
jar dependencies found on non-java platform gem - do not install jars
Successfully installed batching_core-0.1.0
1 gem installed

注意"成功安装batching_core-0.1.0"的成功消息

但当我的项目需要我使用platform=java时,我可以需要一些jar文件。我可以构建gem,但我不能安装它。安装结束时没有成功消息,我不能在irb:中要求gem

$ grep platform batching_core.gemspec 
  spec.platform      = "java"
$ gem build batching_core.gemspec 
  Successfully built RubyGem
  Name: batching_core
  Version: 0.1.0
  File: batching_core-0.1.0-java.gem
$ gem install batching_core-0.1.0-java.gem 
$

^^注意输出不足。没有成功的消息,根本没有输出。

$ irb
jruby-1.7.18 :001 > require 'batching_core'
LoadError: no such file to load -- batching_core
    from org/jruby/RubyKernel.java:1071:in `require'
    from /Users/USERNAME/.rvm/rubies/jruby-1.7.18/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:55:in `require'

我尝试了这里建议的解决方案,但得到了相同的结果。使用Jruby而不是Ruby 创建gem

编辑:以下是导致问题的项目:

https://github.com/ValerieAnne563/so34754484

在我看来,gem似乎不包含您想要的文件。您可以检查内容以查看"batching_core.rb"是否在gem的lib目录中吗?

至于警告。。。我对你们的环境感到困惑。这是一个安装在JRuby上的带有jar的gem?如果你链接到项目或发布gemspec,也许它会澄清一些事情。

最新更新