2011-08-04 45 views
2

使用Buildr打包战争时可以过滤web.xml文件吗?Buildr - 在打包战争中过滤web.xml

Buildr文档:

Without much prompting, package :war picks the contents of the src/main/webapp directory and places it at the root of the WAR

我有一个占位符或在web.xml标记中定义,我想取代它的包装,这取决于ENV我建立在战争的时候。什么是最好的方式去做呢?包装方法有过滤选项吗?

回答

3

您可以指示Buildr过滤src/main/webapp在你的资源,并把target/webapp下生成的文件,

filter_webapp = file("target/webapp") do |task| 
    filter('src/main/webapp/').into(task.to_s).using(
    'version' => '9999' 
).run 
end 

再用线与资源的任务的新任务(这是在包装之前隐含地要求),

resources.enhance [filter_webapp] 

和最后封装过滤资源,

package(:war).with(filter_webapp) 

有关过滤的更多详细信息,请参阅http://buildr.apache.org/building.html#resources

+0

感谢Alex的回复。虽然我还没有得到它的工作,但将离开几天,但将继续这一点,当我回来 – Ross

+0

嗨亚历克斯,这工程谢谢...之前失败的原因是这个错误:ArgumentError:符号字符串在线过滤器('src/main ...)中可能不包含'\ 0'。将它缩小到我的图像文件夹中的jpeg文件...奇怪的是,其他jpegs/gifs /等都很好。不久,当我删除该图像它的作品 – Ross

+0

我得到一个'ArgumentError:interning空字符串'在第二行。建设者 - 追踪并没有帮助我。 – koppor