當你使用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。
相比來講,第二種方式就是自動的幫你編譯打包了,第一種就是手動打包了。
下載你須要的版本: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
安裝插件:
搜索插件Deploy Plugin而後安裝
到此基本配置已經完成,你能夠大體瀏覽一下,習慣操做以後進行下面的項目配置
由於須要自動發佈,因此須要拿到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修改成你想要的,而後記住它
填入名稱選擇自由風格
而後他會讓你配置各類,前面你都不看,直接走到最後的增長構建後的操做步驟
WAR/EAR files裏面寫你war包的名字.war
Containers選擇tomcat(親測tomcat8能夠選擇tomcat7.x)
Manager user name和Manager password就是你剛纔記住的賬號密碼
Tomcat URL爲你tomcat訪問的url跟路徑
而後保存便可
第一次咱們先建立咱們的工做空間,不須要複製war
點擊當即構建,而後確定是失敗的,由於咱們尚未複製war,咱們只是讓他建立個工做空間的目錄
咱們來到jenkins的安裝目錄,而後進入workspace找到你剛纔取的名字的目錄
這就是你的工做空間,接下來把你的war(myeclipes能夠直接右鍵export導出war),複製到這個目錄下便可。
而後再次點擊當即構建,此次就是真的構建了,而後若是沒有問題,那麼就會發布到你的tomcat(你的tomcat必須提早打開哦!)
裏面會看到控制檯輸出的信息,你能夠根據輸出的信息找到你出現的問題,而後解決便可。
至此第一種方法已經完成,若是有多臺服務器也不用我多說了,直接在
Repository URL爲你SVN的地址,使用GIt的選擇上面那個
Credentials是你svn的賬號密碼點擊add能夠新增,如:
請肯定你的路徑是對的。而後配置構建
點擊完成以後就能夠了,不用寫別的什麼
修改war的路徑爲
保存。
這樣jenkins就配置完成了,而後請在你的本地安裝ant。
下載ant(若是你是第一次使用ant,注意本地jdk的版本,須要下載與你jdk版本對應的ant,不然安裝會失敗)
而後配置ant的環境變量,使用ant -version命令查看是否安裝成功,安裝比較簡單(解壓,配置環境變量就能夠了),這裏就很少說了。
若是你使用的是myeclipes,那麼比較簡單,下面跟我操做:右鍵導出
選擇你的項目前面打勾而後finish
雙擊打開,修改三個地方:
一、<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