Java ant可以替换jar/ear/war中文件中的文本吗?
我想构建一次ear文件,然后使用ant更改application.xml、属性文件等中的一些设置 有没有办法用ant做到这一点 [编辑]刚找到这个Java ant可以替换jar/ear/war中文件中的文本吗?,java,ant,Java,Ant,我想构建一次ear文件,然后使用ant更改application.xml、属性文件等中的一些设置 有没有办法用ant做到这一点 [编辑]刚找到这个 修改jar或ear中文件的唯一方法是使用任务,使用任务修改文件中的字段,然后使用或任务重新压缩文件 有几种方法可以处理此问题,而无需解压缩和重新压缩ear/jar/war文件: 首选的方法是设置应用服务器,这样它就可以在ear之外找到您的属性。还可以将application.xml文件配置为在指定位置时不使用相对目录,而不是从机器的根目录指定位置。
修改jar或ear中文件的唯一方法是使用
任务,使用
任务修改文件中的字段,然后使用
或
任务重新压缩文件
有几种方法可以处理此问题,而无需解压缩和重新压缩ear/jar/war文件:
- 首选的方法是设置应用服务器,这样它就可以在ear之外找到您的属性。还可以将
文件配置为在指定位置时不使用相对目录,而不是从机器的根目录指定位置。通过从ear中删除嵌入式环境信息,您可以在所有环境中使用相同的ear文件application.xml
- 不幸的是,我们无法实现上述功能,必须为每个环境提供单独的ear文件。我们使用它作为我们的持续构建服务器。当Jenkins进行构建时,我们同时构建多个EAR,每个环境一个。这样,当我们从开发到QA再到阶段再到生产时,我们至少可以引用相同的版本号。我们编译一次,然后使用来使用正确的属性文件设置和正确的
文件来读取earfile。在构建ear时,我们在application.xml
任务中使用
来修改属性和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"/>
在本例中,我们使用myjar.jar作为源创建了一个tmp.jar,但不包括org/example目录中以My开头的所有类。然后从bin目录中添加新版本。然后我们用新版本替换jar文件。AFAIK,否。替换任务在目录上工作。您可以解压、替换和重新压缩吗?更新选项是否适用于您想要的内容?谢谢,我们也在使用jenkins,并且已经考虑过构建3或4个ear文件,但希望找到另一个解决方案。顺便说一句,构建管道插件相当不错。