我希望能够先构建我的ear文件,然后使用ant更改application.xml、property文件等设置。是否有用ant实现此功能的方法?
[编辑]刚刚发现了这个如何使用ANT修改jar文件中的文件?
[编辑]刚刚发现了这个如何使用ANT修改jar文件中的文件?
<unzip>
任务,使用<replace>
任务来修改文件中的字段,然后使用<zip>
或<jar>/<ear>
任务重新压缩该文件。首选的方法是设置应用程序服务器,使其能够在 ear 文件之外找到您的属性。也可以配置 application.xml
文件,而不是使用相对目录来指定位置,而是从机器的根目录开始指定位置。通过从 ear 文件中删除嵌入式环境信息,您可以在所有环境中使用相同的 ear 文件。
不幸的是,我们无法执行上述操作,必须为每个环境提供单独的 ear 文件。我们使用 Jenkins 作为我们的持续构建服务器。当 Jenkins 进行构建时,我们同时构建多个 ear 文件,每个环境一个。这样,当我们从 Dev 到 QA 到 STAGE 再到 Production 时,我们至少可以引用相同的构建编号。我们只编译一次,然后使用 AntContrib <foreach>
task 将具有正确属性文件设置和正确的 application.xml
文件的 ear 文件打包。我们在 <copy>
任务中使用 <filterset>
修改属性和 application.xml
。
<zip destfile="tmp.jar" >
<zipfileset src="lib/myjar.jar" excludes="org/example/My*.class" />
<zipfileset dir="bin" includes="org/example/My*.class" />
</zip>
<move file="tmp.jar" tofile="lib/myjar.jar"/>