我想建立我的ear文件一次,然后使用ant来更改application.xml中的一些设置,属性文件等。蚂蚁可以替换jar/ear/war文件中的文本吗?
有没有办法用ant来做到这一点?
[编辑]刚刚发现这个
How do I modify a file in a jar file using ANT?
我想建立我的ear文件一次,然后使用ant来更改application.xml中的一些设置,属性文件等。蚂蚁可以替换jar/ear/war文件中的文本吗?
有没有办法用ant来做到这一点?
[编辑]刚刚发现这个
How do I modify a file in a jar file using ANT?
,你可以修改你的罐子或耳内文件的唯一方法是使用<unzip>
任务,使用<replace>
任务修改字段在文件中,然后使用<zip>
或<jar>/<ear>
任务重新将该文件重新备份。
有几种方法可以处理这个问题,而不必解压缩和重新压缩你的耳朵/ JAR/WAR文件:
的首选方法是安装应用程序服务器,因此它可以在外面找你的属性的耳朵本身。也可以配置application.xml
文件,以便在指定位置时不使用相对目录,而不是从机器的根目录指定位置。通过从您的耳朵中删除嵌入式环境信息,您可以在所有环境中使用相同的earfile。
不幸的是,我们无法做到以上所述,并且必须为每个环境提供单独的ear文件。我们使用Jenkins作为我们的连续构建服务器。当詹金斯做我们的建造时,我们同时为每个环境建造多个耳朵。这样,当我们从开发到质量保证,再到阶段时,我们至少可以引用相同的版本号。我们编译一次,然后使用AntContrib <foreach>
task来获得正确的属性文件设置和正确的application.xml
文件的earfile。我们在<copy>
任务中使用<filterset>
修改属性,并在建立耳朵时修改属性application.xml
。
谢谢,我们也使用詹金斯,并已考虑建设3或4耳文件,但希望有其他解决方案。顺便说一句,build pipline插件相当不错。 – blank
你可以做这样的事情
<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作为源,但不包括所有classees在组织/ example目录开始我创建一个tmp.jar。然后,我们从bin目录中添加我们的新版本。然后我们用我们的新版本替换jar文件。
AFAIK,no。将任务替换为目录。你可以解压缩,替换和重新压缩? – aishwarya
更新选项是否适用于你想要的? http://stackoverflow.com/questions/12059046/ant-ear-update-without-full-exploding-ear – peater