Ant远程部署到Tomcat
2019獨角獸企業重金招聘Python工程師標準>>>
本文涉及的工具
Eclipse4.5.2
Ant1.9.6(Eclipse自帶的插件)
jsch-0.1.53(直接點擊可以打開下載頁面)
具體步驟如下
1.創建build.xml文件
在項目中添加build.xml文件,build.xml是ant默認的文件名,可以修改為其他的名字,不影響Ant腳本的執行,如下圖,build.xml和build-webdemo.xml都可以作為Ant腳本。
2.修改build.xml文件
可以參考下面的文件,根據具體情況修改遠程主機賬號密碼和tomcat部署的路徑
請確定遠程的Tomcat中包含相應的目錄,例如本例中的/opt/tomcat7/webapps/demo
不然會提示目錄不存在,特別是webapps后面的路徑,必須存在,如果不存在,需要先手動創建相應的文件夾,當然你也可以完善一下Ant腳本,先執行一個遠程命令,創建相應的文件夾。
<?xml version="1.0" encoding="UTF-8"?> <!-- 使用該腳本是用有些前置條件。 本腳本適用于eclipse或者myeclipse環境中使用 編譯文件的默認輸出目錄為 WebContent/WEB-INF/classes 如果不確定,可以先查看項目java build path 的default output folder請確定項目已經build過,或者執行該ant腳本之前手動執行build執行前,請確定是否使用jdk1.7編譯的class代碼可以根據項目的名字不同,修改property里面的value值 --> <project name="demo" default="war"><property name="war.name" value="${ant.project.name}"/><property name="jar.name" value="${ant.project.name}-api.jar"/><property name="tomcat.home" value="/opt/tomcat7"/><property name="tomcat.webapps.context" value="${ant.project.name}"/><property name="remote.host" value="192.168.1.110"/><!-- 格式化時間 --><tstamp><format property="fdate" pattern="yyyyMMddHHmmss"/></tstamp><available file="./WebContent/WEB-INF/classes" property="pathisexit" type="dir"/><!-- 生成war文件 --><target name="war" depends="init.test"><delete file="${war.name}.war" /><war destfile="${war.name}.war" webxml="./WebContent/WEB-INF/web.xml"><fileset dir="./WebContent"><!--根據需要可以適當的增減文件夾,里面是一個例子,可以參考使用,如果不配置,就是默認WebContent下面的所有文件夾和文件<include name="WEB-INF/classes/**/*" /><exclude name="WEB-INF/classes/**/*.class" /><include name="WEB-INF/lib/**/*" /><include name="WEB-INF/serviceconf/**/*" />--></fileset></war></target><!-- 遠程傳輸文件夾,需要添加第三方的jar文件才能支持 --><target name="remote-deploy" depends="init.test"><scp todir="root@${remote.host}:${tomcat.home}/webapps/${tomcat.webapps.context}" password="0EY*r6Wi" trust="true"><fileset dir="./WebContent"></fileset></scp></target><!-- 執行腳本重啟tomcat主意tomcat.home的屬性,需要配置正確的tomcat路徑--><target name="tomcat.restart"><sshexec command="${tomcat.home}/bin/catalina.sh stop -force;ps -ef | grep ${tomcat.home}| grep -v grep|awk '{print $2}'|xargs kill -9;${tomcat.home}/bin/catalina.sh start" host="${remote.host}" username="root" password="0EY*r6Wi" trust="true"/></target><target name="publish"><!-- 先分發軟件 --><antcall target="remote-deploy" /><!-- 然后重啟tomcat --><antcall target="tomcat.restart" /></target><!-- 備份當前文件 --><target name="bakwebapp"><echo>cd ${tomcat.home}/webapps;tar -zcvf ${tomcat.webapps.context}.${fdate}.tar.gz ${tomcat.webapps.context}</echo><!-- 執行備份語句 --><sshexec command="cd ${tomcat.home}/webapps;tar -zcvf ${tomcat.webapps.context}.${fdate}.tar.gz ${tomcat.webapps.context}" host="${remote.host}" username="root" password="0EY*r6Wi" trust="true"/></target><target name="init.test" unless="pathisexit"><fail message="classes文件夾不存在,檢查你的IDE的構建路徑,本腳本僅適用于IDE環境或者你手動將代碼編譯到classes文件夾中"/></target></project>3.測試效果
編輯完build.xml文件后,右鍵執行
默認執行的war,我是考慮防止第一次使用的時候誤操作,直接覆蓋了遠程服務器的項目,如果確定遠程Tomcat的目錄可以直接覆蓋,在publish前面勾上,然后執行就可以了。
由于依賴jsch.jar文件,所以運行的時候需要將該文件加入到ant的classpath中,見上圖,
或者可以配置Ant的運行環境。
配置完之后就可以直接點擊run,控制臺會提示你進度,祝你好運。
4.總結
如果需要頻繁部署到遠程服務器,使用這個Ant的腳本還是比較好用的,輕量級,如果是大型團隊可以考慮使用其他的Paas平臺。
?
轉載于:https://my.oschina.net/u/1159248/blog/698223
總結
以上是生活随笔為你收集整理的Ant远程部署到Tomcat的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javascript怎么反转数组
- 下一篇: xml 文件解析 pull