我们使用Buildr将应用程序打包为.war文件。为了进一步精简自动部署过程中,我想有条件地选择这两个文件(从目录src/main/resources
)中的一个......如何有条件地使用Buildr在.war包中包含两个文件之一?
database-hsql.properties
database-postgres.properties
...和将它包含在名为database.properties
的.war中。 (在WAR内部的相同位置,即WEB-INF/classes/
,其中src/main/resources
的文件现在结束。)
任何简单的方法来做到这一点?任何方法都可以,例如—,例如参数化“程序包”(以某种方式)或定义两个不同的任务/目标(我不确定该术语),例如“package-hsql”&“package-pgsql”—,只要它有效且足够简单。的buildfile
相关位:
load 'dependencies'
require 'buildr/hibernate'
desc "..."
define "foo" do
project.version = VERSION_NUMBER
project.group = GROUP
manifest["Implementation-Vendor"] = COPYRIGHT
compile.with WICKET,GUAVA,GSON, ... [many more libs]
test.with MOCKITO
resources
test.compile.with SERVLET,_('src/main/webapp'),_('src/main/resources')
package(:war).with(:libs=> [WICKET,GUAVA,GSON, ... ])
end
奖金的问题:如何执行任意的shell命令(我会使用涉及如>>
或sed
东西)在每个两种情况更改另一个配置文件? (我也想从另一个文件“注入”applicationContext.xml
的一些数据库设置;这比将VCS中的两个副本保留在大多数相同的内容中更可取)。我是一个Buildr的新手,并不了解Ruby。 (是的,使用一种当前团队成员无法熟练使用的工具不是最佳状态......)如果需要澄清,请指出!
太好了,非常感谢!我使用“cp”方法得到了它的工作。 (现在我有点匆忙,但后来的奖金案例(applicationContext.xml)确实应该清理干净,或许使用您提到的过滤机制......) – Jonik 2010-12-16 10:00:54