- 论坛徽章:
- 0
|
warbler 配置问题说明
warbler是一个打包工具,可以将rails应用打包为war,使用如下:
Bash代码- $ gem install warbler # 安装
- $ cd your_rails_app
- $ warbler #使用
复制代码 然后你就可以在你的rails项目下看到一个war文件了,非常简单
好的开源项目应该既方便又强大,warber也基本符合这个要求,它可以定制自己的打包参数,你可以在rails项目中生成缺省配置文件,然后按照你的特别要求修改配置文件:
Bash代码- warble config # then you can edit config file whose path is config/warble.rb
复制代码 ruby的配置文件本身就是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 中,于是可以这么设定:
Ruby代码- config.java_classes = FileList["java/conf/**/*"]
- config.pathmaps.java_classes << "%{java/conf/,}p"
复制代码 同理,其它的路径也有对应的 pathmaps 可以设置,仔细看看就知道
另外,借助ruby的动态特性,我们也可以用插件进行设置增强
这块的相关的代码是在下面的文件中:
Ruby代码- $JRUBY_HOME/gems/warbler-1.3.0/lib/warbler/config.rb
- $JRUBY_HOME/gems/warbler-1.3.0/lib/warbler/traits/war.rb
复制代码 有兴趣的同学可以看看 |
|