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


前言

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

你每次都要在本地編譯打包一遍,然后手動復制到每一台服務器上面去,如果只有一兩台服務,那么確實還不算麻煩,但是當你有了一定數量的服務,你就會發現,發布一遍項目,一個小時過去了。然后你即使改動一個小的地方,所有的必須又重新發布一遍,最后在發布項目上面浪費的時間都足夠你睡一覺了。

所以這里就要讓你們知道,如何使用第三方的一些軟件來幫你完成這些麻煩的問題。(我知道有技術的人都是隨便自己寫個腳本就完成了,那你大可不必往下看咯)

 

需要的軟件以及環境

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

以下的軟件和環境並非必須,可以根據自己的情況做出調整,我只是列出我用到的

Ant編譯打包軟件

myeclipes

SVN或者GIT

tomcat項目容器

 

說明和大致流程

因為開發的環境軟件大家都不相同,所以我會講兩種不同的方式,第一種大多數都試用,第二種比較需要環境。

第一種方式需要: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

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

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

2、在<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>   

3、加入<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


免責聲明!

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



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