實現自動構建編譯javaweb項目併發布到N臺服務器

前言

當你使用nginx實現了負載均衡,當你有了超過3臺以上的應用服務器時,一個特別頭疼的問題就來了,發佈項目好麻煩。html

你每次都要在本地編譯打包一遍,而後手動複製到每一臺服務器上面去,若是隻有一兩臺服務,那麼確實還不算麻煩,可是當你有了必定數量的服務,你就會發現,發佈一遍項目,一個小時過去了。而後你即便改動一個小的地方,全部的必須又從新發布一遍,最後在發佈項目上面浪費的時間都足夠你睡一覺了。java

因此這裏就要讓大家知道,如何使用第三方的一些軟件來幫你完成這些麻煩的問題。(我知道有技術的人都是隨便本身寫個腳本就完成了,那你大可沒必要往下看咯)linux

 

須要的軟件以及環境

Jenkins管理軟件,幫你自動構建和發佈項目(這是必須的)nginx

如下的軟件和環境並不是必須,能夠根據本身的狀況作出調整,我只是列出我用到的git

Ant編譯打包軟件web

myeclipestomcat

SVN或者GIT服務器

tomcat項目容器負載均衡

 

說明和大體流程

由於開發的環境軟件你們都不相同,因此我會講兩種不一樣的方式,第一種大多數都試用,第二種比較須要環境。maven

第一種方式須要:Jenkins、而後須要你會打包你的項目成爲war,不管用什麼方式均可以,這樣就夠了。流程大體就是,你把你的war拷貝到jenkins的工做空間,而後配置,發佈便可。

第二種方式須要:Jenkins、Ant、SVN或者Git。大體流程是,在Jenkins裏面配置svn的項目路徑,而後配置ant的build。xml,而後構建的時候,Jenkins會從svn或者git把你的項目下載下來,而後使用ant打包編譯,而後發佈到tomcat。

相比來講,第二種方式就是自動的幫你編譯打包了,第一種就是手動打包了。

 

Jenkins的安裝和配置

下載你須要的版本:https://jenkins.io/index.html

安裝以前請保證8080端口不要被佔用

windos的安裝直接解壓雙擊,linux安裝須要命令java -jar jenkins.war

安裝完成以後使用http://localhost:8080/就能夠訪問了

而後會讓你安裝一些默認須要的插件,而後配置用戶名等,這裏就很少說了,很簡單。

進去以後首先幹一件事,修改端口號,由於我知道不少人用tomcat用的就是8080,因此這裏我修改爲8090

進入jenkins的安裝目錄,而後修改jenkins.xml裏面的8080爲8090,而後重啓

http://localhost:8080/reload而後點一下就能夠了。

jenkins的其餘啓動關閉命令請參考:http://www.jb51.net/article/98554.htm

安裝插件:

image

搜索插件Deploy Plugin而後安裝

到此基本配置已經完成,你能夠大體瀏覽一下,習慣操做以後進行下面的項目配置

 

tomcat配置

由於須要自動發佈,因此須要拿到tomcat的一些權限,須要你建立一個tomcat的用戶用於管理tomcat。

在tomcat的conf目錄中配置tomcat-users.xml文件

在<tomcat-users>

節點裏添加以下內容:

<role rolename="manager-gui"/>

<role rolename="manager-script"/>

<role rolename="manager-jmx"/>

<role rolename="manager-status"/>

<user username="username" password="password" roles="manager-gui,manager-script,manager-jmx,manager-status"/>

引號裏的username和password修改成你想要的,而後記住它

 

在Jenkins配置你的項目

而後新建項目image

image

填入名稱選擇自由風格

而後他會讓你配置各類,前面你都不看,直接走到最後的增長構建後的操做步驟

image

image

WAR/EAR files裏面寫你war包的名字.war

Containers選擇tomcat(親測tomcat8能夠選擇tomcat7.x)

Manager user name和Manager password就是你剛纔記住的賬號密碼

Tomcat URL爲你tomcat訪問的url跟路徑

而後保存便可

第一次咱們先建立咱們的工做空間,不須要複製war

image點擊當即構建,而後確定是失敗的,由於咱們尚未複製war,咱們只是讓他建立個工做空間的目錄

咱們來到jenkins的安裝目錄,而後進入workspace找到你剛纔取的名字的目錄

這就是你的工做空間,接下來把你的war(myeclipes能夠直接右鍵export導出war),複製到這個目錄下便可。

image

而後再次點擊當即構建,此次就是真的構建了,而後若是沒有問題,那麼就會發布到你的tomcat(你的tomcat必須提早打開哦!)

若是出現任何問題,點擊image

而後image

裏面會看到控制檯輸出的信息,你能夠根據輸出的信息找到你出現的問題,而後解決便可。

至此第一種方法已經完成,若是有多臺服務器也不用我多說了,直接在

image後面加就好了。

 

實現自動下載項目和打包編譯

image

Repository URL爲你SVN的地址,使用GIt的選擇上面那個

Credentials是你svn的賬號密碼點擊add能夠新增,如:image

請肯定你的路徑是對的。而後配置構建

image

點擊完成以後就能夠了,不用寫別的什麼

修改war的路徑爲

image

保存。

這樣jenkins就配置完成了,而後請在你的本地安裝ant。

下載ant(若是你是第一次使用ant,注意本地jdk的版本,須要下載與你jdk版本對應的ant,不然安裝會失敗

而後配置ant的環境變量,使用ant -version命令查看是否安裝成功,安裝比較簡單(解壓,配置環境變量就能夠了),這裏就很少說了。

若是你使用的是myeclipes,那麼比較簡單,下面跟我操做:右鍵導出

image

image

選擇你的項目前面打勾而後finish

而後在你的項目根目錄下面會生成一個image

雙擊打開,修改三個地方:

一、<project basedir="." default="war" name="">

二、在<target name="init">後面修改爲以下的樣子

<target name="init">
        <mkdir dir="WebRoot/WEB-INF/classes"/>
        <copy includeemptydirs="false" todir="WebRoot/WEB-INF/classes">
            <fileset dir="src">
                <exclude name="**/*.java"/>
            </fileset>
        </copy>
    </target>上面這些不動,下面是要加的

                 
    <target name="war" depends="build-project">  
       <mkdir dir="target"/> 
       <war destfile="target/你的項目名稱.war" webxml="WebRoot/WEB-INF/web.xml">  
           <fileset dir="WebRoot"/>  
           <lib dir="WebRoot/WEB-INF/lib"/>  
       </war>  
      </target>   

三、加入<compilerarg line="-encoding UTF-8 "/>具體位置以下

<javac debug="true" debuglevel="${debuglevel}" destdir="WebRoot/WEB-INF/classes" includeantruntime="false" source="${source}" target="${target}">
            <compilerarg line="-encoding UTF-8 "/>
            <src path="src"/>
            <classpath refid="tzlhxc.classpath"/>
        </javac>

配置完成,咱們先驗證一下,右鍵build.xml而後runas而後選擇ant build

若是過一會控制檯出現BUILD SUCCESSFUL則成功了。

把build.xml提交svn或者git,而後肯定項目全部你須要的東西都已經提交。

最後咱們點擊當即構建,jekins就會從你的svn上下載你的項目到工做空間,而後ant進行編譯打包,最後將war包上傳到tomcat而後發佈,整個過程一鼓作氣,若是有問題繼續看控制檯報錯解決便可。

至此全部的配置已經完成。

 

總結

對於jenkins自己來講還有不少的功能,有興趣的朋友能夠繼續研究,好比監控,還有檢測到svn修改就發佈等功能。

若是你項目自己是maven的項目也有具體的配置方式這裏就很少說了。

總之過程是差很少的,這裏也只是拋磚引玉,你須要根據你的實際項目環境來選擇合適的配置。

總之,有了這樣的軟件發佈項目確實很方便,只要你第一次配置好了,之後你只要提交到svn或者git,而後直接點擊當即構建你的全部事情都解決了。

而後提出須要注意的點:ant的配置文件能夠根據具體的需求自行修改和配置。tomcat的編碼最好設置成utf-8。tomcat的虛擬機內存須要足夠大,不然項目大的時候發佈時間很慢。對於jenkins來講能夠佈置在任何一臺別的服務器上面,不須要必定佈置在本機,這樣的話能夠實現遠程24小時管理,由於本身的電腦不必定24小時開機的。

 

參考文檔:http://files.cnblogs.com/zz0412/jenkins%E5%85%A5%E9%97%A8%E6%89%8B%E5%86%8C.pdf這個是詳細的jenkins的配置和解釋。

http://www.cnblogs.com/smail-bao/p/6019417.html 使用maven的參考

http://www.jb51.net/article/98554.htm jenkins的啓動關閉方法

http://jingyan.baidu.com/article/90808022c5eed8fd91c80f90.html  ant的安裝和配置

https://www.tutorialspoint.com/ant/ant_environment.htm ant的官網

http://blog.csdn.net/wangyajin333/article/details/47860577總體參考

 

轉載請註明出處:http://www.cnblogs.com/linkstar/p/6530451.html

做者:LinkinStar

相關文章
相關標籤/搜索