当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,也许它会澄清一些事情。