Ant + Tomcat + Jenkins 實現自動化部署


前言:博主資歷尚淺,很多東西都還在剛起步學習的階段,這幾天開發任務比較輕,就在自己window系統下,模擬部署遠程服務器,利用Jenkins + Ant + Tomcat 搭建了一個自動發布部署的環境,特分享給大家。如果有哪些說的不對的地方,還請大家不吝賜教。

1、工具版本

 Ant:apache-ant-1.9.1

Jenkins:jenkins-2.46.3

Tomcat:apache-tomcat-8.0.43

系統:window7

開發工具:IDEA

2、Web項目

簡述:這里只是在本地簡單的構建了一個Web項目,並沒有使用 Maven 或者在 Git 上托管。

3、在Web工程中加入Ant,利用Ant來自動構建部署

  • 在項目的根目錄下新建build.xml
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project name="demo" default="deleteWar" basedir=".">
 3     <property name="build" value="${basedir}/build"/>
 4     <property name="build.class" value="${build}/classes"/>
 5     <property name="src" value="${basedir}/src"/>
 6     <property name="web" value="${basedir}/web"/>
 7     <property name="lib" value="${web}/WEB-INF/lib"/>
 8 
 9     <!--請將下面的路徑改為你本地的路徑-->
10     <property name="webserver" value="D:\apache-tomcat-8.0.43"/>
11 
12     <!--定義CLASSPACH,編譯時用到你外部加入的包-->
13     <path id="classpath">
14         <pathelement location="${src}"/>
15         <fileset dir="${lib}" includes="***.jar"/>
16     </path>
17 
18     <!--刪除任務-->
19     <target name="clean" description="刪除">
20         <echo message="刪除目錄"/>
21         <delete dir="${build}"/>
22     </target>
23 
24     <!--創建一個臨時目錄-->
25     <target name="init" description="創建目錄" depends="clean">
26         <echo message="創建目錄--以執行"/>
27         <mkdir dir="${build.class}"/>
28     </target>
29 
30 
31     <!--編譯java源文件-->
32     <target name="compile" description="編譯文件" depends="init">
33         <echo message="編譯文件"/>
34         <javac srcdir="${src}" destdir="${build.class}">
35             <classpath refid="classpath"/>
36             <compilerarg line="-encoding GBK "/>
37         </javac>
38     </target>
39 
40     <!--打成WAR包-->
41     <target name="generwar" depends="compile">
42         <echo message="打成WAR"/>
43         <war destfile="${build}/${ant.project.name}.war" webxml="${web}/WEB-INF/web.xml">
44             <fileset dir="web"/>
45             <lib dir="${lib}"/>
46             <classes dir="${build.class}"/>
47         </war>
48     </target>
49 
50 
51     <!--把WAR放到一個指定目錄,這里是直接布署到TOMCAT服務器-->
52     <target name="fabu" depends="generwar" description="發布">
53         <copy file="${build}/${ant.project.name}.war" todir="${webserver}/webapps"/>
54     </target>
55 
56 
57     <!--把打好的WAR刪除-->
58     <target name="deleteWar" depends="fabu" description="刪除服務器上的war">
59         <delete dir="${build}"/>
60     </target>
61 
62     <!--停止tomcat-->
63     <target name="stop_tomcat">
64         <echo>停止tomcat</echo>
65         <exec executable="cmd" dir="${webserver}/bin" failonerror="false" append="true">
66             <env key="CATALINA_HOME" path="${webserver}"/>
67             <arg value="/c shutdown.bat"/>
68         </exec>
69     </target>
70 
71     <!--啟動tomcat-->
72     <!--這里做的主要是部署本地Tomcat服務器的過程,差不多的思路是先把war發布到webapps目錄下,接着再重啟服務器-->
73     <target name="start_tomcat" depends="fabu,stop_tomcat">
74         <echo>啟動tomcat</echo>
75         <exec executable="cmd" dir="${webserver}/bin" failonerror="false" append="true">
76             <env key="CATALINA_HOME" path="${webserver}"/>
77             <arg value="/c startup.bat"/>
78         </exec>
79     </target>
80 
81     <!--部署到遠程服務器-->
82     <!--這里模擬了一個利用ant部署到遠程服務器的過程,server是ftp服務器IP地址,userid和password是ftp服務器的賬號
83      和密碼,remotedir是你在建立服務器時,為服務器建立的目錄,我建立的是D:\apache-tomcat-8.0.43\webapps,fileset
84      是你要上傳的文件,要利用ftp上傳需要導入兩個jar包,commons-net-1.4.0.jar、jakarta-oro-2.0.8.jar 85      -->
86     <target name="deploy" depends="generwar">
87         <ftp server="127.0.0.1"
88              userid="admin" password="123456" remotedir="/">
89             <fileset dir="${build}">
90                 <include name="*.war"/>
91             </fileset>
92         </ftp>
93     </target>
94 </project>
  • 運行Ant來部署項目

    

  • Ant 的 jar 包導入說明

 

  • 這里再附屬說一下,如何將自己的localhost建立成ftp服務器,我用的是 Quick Easy Ftp Server 4.0.0,下完這個軟件后,按照提示下一步、下一步設置好賬號和密碼即可

4、Jenkins和Ant集成部署項目

  • 自動部署需要一個容器,那Jenkins是怎么知道你的容器的呢?容器插件這個時候就要出場了!
    首頁-》系統管理-》管理插件
    搜索deploy,很快就會找到這個deploy to container plugin,這里博主已經安裝好了,就不在安裝了, 記住安裝完記得重啟!

 

  • 構建一個自由風格的Jenkins項目,由於我沒有托管Git或者使用maven。源碼管理那邊,只要將你的源碼丟進Jenkins目錄中workspace你的工程下即可(只有build一次,才會出現workspace目錄)

  •   自動發布部署項目。這里介紹兩種方式,一種是利用Ant,一種是利用Jenkins將war包發布到對應服務器的容器中 
  1.  利用Ant發布  
  2. 利用Jenkins發布到對應容器中,無論是遠程、還是本地

                  

備注:此處admin用戶,需要具備manager-gui,manager-script,manager-jmx,manager-status權限,否則報錯,用戶在D:\apache-tomcat-8.0.43\conf 下tomcat-user.xml下配置,新增以下用戶

  <role rolename="manager-script" />
  <user username="admin" password="nimda"  roles="manager-script"/>     

        3. build 構建項目查看結果

           

            

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM