4

我正在尝试使用 sinatra 和 warble 创建一个简单的可执行 war 文件。我有一个简单的 lib/app.rb 文件,其中包含:

require 'rubygems'
require 'sinatra'

class Hiwar < Sinatra::Application 
  get '/' do
    body "Hi!"
  end
end

一个 config.ru 文件,其中包含:

require 'rubygems'
require 'lib/app'

run Hiwar.new

和一个 config/warble.rb 文件,其中包含:

Warbler::Config.new do |config|
  config.dirs = %w(config lib)

  config.gems += ["sinatra","rack","rack-protection","tilt","jruby-openssl"]

end

当我执行时:

$ warble executable war

我得到:

warble aborted!
Zip end of central directory signature not found

Tasks: TOP => war:files
(See full trace by running task with --trace)

我已经看到,如果我从列表中删除 gem“jruby-openssl”,它不会抱怨并创建 war 文件,但是当我执行它时,它会引发 500 错误:

undefined method `ssl?' for class `Sinatra::Request'

有没有更简单的方法来生成带有 sinatra 的可执行 jar?

4

1 回答 1

0

查看Rawr,它允许您jruby-complete将 Ruby 解释器嵌入到 jar 中。

在过去的 3 天里,我得到了一个名为FontX的工作演示,它可以转换.ttf为各种其他字体格式。运行 'rake rawr:jar' 编译,然后rake start查看。

Github 上的 FontX

于 2012-08-16T22:49:17.297 回答