我使用ruby创建自己的日志监视器脚本,并使用Warbler将其与JRuby一起编译成JAR。我正在运行JRuby 1.7.17 64bit。当我运行脚本时,我尝试使用可用于MRI的gem optparse
和JRuby:
monitor_log>] jruby lib\monitor_log\log_watch.rb --help
Usage: log_watch [options]
-f, --file FILE Input file to monitor
-p, --pattern PATTERN Pattern to match in the file
-h, --help Show this screen
所以我尝试使用JBundler运行它来查看JRuby是否会运行我的gem,
monitor_log>] jbundle exec jruby bin/log_watch.rb --help
Usage: log_watch [options]
-f, --file FILE Input file to monitor
-p, --pattern PATTERN Pattern to match in the file
-h, --help Show this screen
所以,然后我尝试使用Warbler将其编译成JAR。我得到了:
monitor_log>] warble executable jar
warble aborted!
Bundler::GemNotFound: Could not find gem 'optparse (>= 0) java' in the gems available on this machine.
c:\Ruby\jruby-1.7.17\bin\warble:23:in `(root)'
(See full trace by running task with --trace)
我认为JRuby默认没有这个,所以我试着搜索宝石,
monitor_log>] jruby -S gem search optparse
*** REMOTE GEMS ***
micro-optparse (1.2.0)
optparse-command (0.1.8)
optparse-defaults (0.1.0)
optparse-lite (0.0.0)
optparse-off (0.0.1)
optparse-pathname (0.0.1)
optparse-range (0.0.3)
optparse-simple (0.4.2)
optparse_ex (0.0.4)
pickled_optparse (0.1.1)
remi-optparse-simple (0.1.0)
rubysl-optparse (2.0.1)
subcommand-optparse (0.0.3)
但没有任何明显的突出表现出来。我有什么不正确的事吗?我将gem optparse
添加到.gemspec作为开发依赖项和运行时依赖项。我不应该这样做,还是我还缺少其他东西?
答案 0 :(得分:0)
删除
spec.add_development_dependency "optparse"
spec.add_runtime_dependency "optparse"
完成了这个技巧,现在gem编译成一个可运行的JAR文件。