`
fsword
  • 浏览: 164886 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

[jruby] warbler 配置问题说明

阅读更多

这篇blog是整理给自己看的,因为一年前解决过一个问题,结果时间一长居然忘了,今天重新解决了一遍,自己汗一下

 

warbler是一个打包工具,可以将rails应用打包为war,使用如下:

$ gem install warbler # 安装
$ cd your_rails_app
$ warbler #使用

 

然后你就可以在你的rails项目下看到一个war文件了,非常简单

 

好的开源项目应该既方便又强大,warber也基本符合这个要求,它可以定制自己的打包参数,你可以在rails项目中生成缺省配置文件,然后按照你的特别要求修改配置文件:

warble config # then you can edit config file whose path is config/warble.rb 
 

ruby的配置文件本身就是ruby代码,这里面有注释,就不解释了,值的说明的是这几行

  # Loose Java classes and miscellaneous files to be included.
  # config.java_classes = FileList["target/classes/**.*"]

  # One or more pathmaps defining how the java classes should be copied into
  # the archive. The example pathmap below accompanies the java_classes
  # configuration above. See http://rake.rubyforge.org/classes/String.html#M000017
  # for details of how to specify a pathmap.
  # config.pathmaps.java_classes << "%{target/classes/,}p"
 

注释里写的很清楚,打包工具需要解决两个问题:

  1. 打包的文件来自哪里;
  2. 打包时,文件放到哪个目录下,文件名是什么;

这两个问题在config中是分开设置的,一个是 java_classes ,第二个是 pathmaps.java_classes ,所以你可以设置好前一个路径,然后用后一个的正则表达式改成你需要的war中的位置

 

比如在 java_side 中,我设定的 spring 配置文件在 java/conf 目录下,这些文件应该直接copy到 WEB-INF/classes 中,于是可以这么设定:

 

config.java_classes = FileList["java/conf/**/*"]
config.pathmaps.java_classes << "%{java/conf/,}p"

 

同理,其它的路径也有对应的 pathmaps 可以设置,仔细看看就知道

 

另外,借助ruby的动态特性,我们也可以用插件进行设置增强

 

这块的相关的代码是在下面的文件中:

$JRUBY_HOME/gems/warbler-1.3.0/lib/warbler/config.rb
$JRUBY_HOME/gems/warbler-1.3.0/lib/warbler/traits/war.rb

 

有兴趣的同学可以看看

2
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics