我想建立我的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