自動(dòng)化部署工作報告
工作目的:實(shí)現自動(dòng)化部署工作,以期提高開(kāi)發(fā)項目的工作效率;
工作內容:利用開(kāi)源的可持續集成工具,實(shí)現java項目的自動(dòng)編譯、打包、發(fā)布等工作流程;
具體工作內容如下:
一、 自動(dòng)化部署的環(huán)境搭建;
二、 Maven對java項目的編譯、打包與發(fā)布;
三、 Hudson對java項目實(shí)現自動(dòng)化的編譯、打包與發(fā)布;
現逐點(diǎn)論述如下:
一、 自動(dòng)化部署的環(huán)境搭建
自動(dòng)化部署需要如下幾樣工具:1.jdk的安裝;2.web服務(wù)器(tomcat 6.0);3.svn客戶(hù)端與服務(wù)器端;4.maven;5.hudson及其相應插件的安裝;
1. jdk的安裝
安裝JDK(Java軟件開(kāi)發(fā)工具包,含JRE)(76.6 MB).EXE,一般都是一路點(diǎn)擊next,最后點(diǎn)擊finish,結束安裝;
設置環(huán)境變量:首先在”我的電腦”點(diǎn)右鍵,選擇”屬性”,再選擇”高級”選項,點(diǎn)”環(huán)境變量”,在系統變量中找到classpath變量,點(diǎn)”編輯”,在原來(lái)的內容后面先寫(xiě)個(gè)分號,再寫(xiě)個(gè)小數點(diǎn),再寫(xiě)個(gè)分號,然后再把安裝的bin文件的路徑寫(xiě)上去,如C:\Program Files\Java\jdk
這樣就把環(huán)境變量設置好了;
以上三個(gè)變量設置完畢,則按“確定”直至屬性窗口消失,下來(lái)是驗證看看安裝是否成功。先打開(kāi)“開(kāi)始”->“運行”,打入“cmd”,進(jìn)入dos系統界面。然后打“java -version”,如果安裝成功。系統會(huì )顯示java version jdk"
2.Apache Tomcat V6.0.EXE 的安裝
運行apache-tomcat-
單擊【Next】按鈕就完成了。安裝時(shí),它會(huì )自動(dòng)找到你的JDK安裝路徑。需要設置幾個(gè)環(huán)境變量:
CATALINA_HOME =Tomcat解壓目錄,我們這里就是CATALINA_HOME=C:\tomcat6
ClassPath =%CATALINA_HOME%\lib;
啟動(dòng)Tomcat后,在瀏覽器地址欄輸入http://localhost:8080/, 顯示下圖:
3.svn客戶(hù)端與服務(wù)器端安裝
服務(wù)器端公司已安裝,在此就不再多講了。
svn客戶(hù)端TortoiseSVN-
安裝在此不再詳述;主要是通過(guò)客戶(hù)端與服務(wù)器端連接,公司服務(wù)器端svn://192.168.1.240/svn_py/,并在服務(wù)器端開(kāi)啟權限,建立自己的目錄:svn://192.168.1.240/svn_py/test_yang;
4.maven
在安裝Maven之前,首先要確認你已經(jīng)正確安裝了JDK。Maven可以運行在JDK 1.4及以上的版本上。本書(shū)的所有樣例都基于JDK 5及以上版本。打開(kāi)Windows的命令行,運行如下的命令來(lái)檢查你的Java安裝:
C:\Users\Juven Xu>echo %JAVA_HOME%
C:\Users\Juven Xu>java -version
上述命令首先檢查環(huán)境變量JAVA_HOME是否指向了正確的JDK目錄,接著(zhù)嘗試運行java命令。如果Windows無(wú)法執行java命令,或者無(wú)法找到JAVA_HOME環(huán)境變量。你就需要檢查Java是否安裝了,或者環(huán)境變量是否設置正確。
解壓縮che-maven-
打開(kāi)系統屬性面板(桌面上右鍵單擊“我的電腦”→“屬性”),點(diǎn)擊高級系統設置,再點(diǎn)擊環(huán)境變量,在系統變量中新建一個(gè)變量,變量名為M2_HOME,變量值為Maven的安裝目錄D:\bin\apache-maven-3.0。點(diǎn)擊確定,接著(zhù)在系統變量中找到一個(gè)名為Path的變量,在變量值的末尾加上%M2_HOME%\bin;,注意多個(gè)值之間需要有分號隔開(kāi),然后點(diǎn)擊確定。至此,環(huán)境變量設置完成,現在打開(kāi)一個(gè)新的cmd窗口(這里強調新的窗口是因為新的環(huán)境變量配置需要新的cmd窗口才能生效),運行如下命令檢查Maven的安裝情況:
C:\Users\Juven Xu>echo %M2_HOME%
C:\Users\Juven Xu>mvn -v
第一條命令echo %M2_HOME%用來(lái)檢查環(huán)境變量M2_HOME是否指向了正確的Maven安裝目錄;而mvn –version執行了第一條Maven命令,以檢查Windows是否能夠找到正確的mvn執行腳本。
5.hudson及其相應插件的安裝
下載hudson.war包和deploy.hpi插件:將hudson.war包copy到tomcat下的webapp下,重啟tomcat,tomcat將自動(dòng)把hudson的war包解析為名為hudson的文件夾,自此hudson部署完畢,在瀏覽器地址欄輸入http://localhost:8080/hudson,顯示下圖即可:
安裝deploy.hpi插件:側列表菜單Manage Hudson,然后選擇第三項Manage Plugins,這個(gè)選項的功能是管理Hudson插件的,在插件管理中心點(diǎn)擊Advanced,在upload plugin 中上傳剛才下載的插件,上傳完畢后需要重啟hudson才能完成安裝(即重啟tomcat)。
這時(shí)在插件已安裝項可以找到它:deploy-plugin,版本1.6版的;不過(guò)使用它,一個(gè)是在創(chuàng )建項目中啟用它,一個(gè)是必須在項目build成功以后才行。
二、Maven對java項目的編譯、打包與發(fā)布
在這里先講清楚一點(diǎn),為什要寫(xiě)對web項目的編譯、打包與發(fā)布,因為到了hudson下,這些工作任然是由maven去完成的。而且確實(shí)也是通過(guò)對maven的熟悉,使得我對web項目的目錄結構和pom.xml文件的作用有了更為清晰的認識。
首先介紹在maven下對web項目的編譯、打包過(guò)程,發(fā)布放到hudson中在寫(xiě)。
1.首先利用command line進(jìn)入任意目錄,輸入
mvn archetype:create -DgroupId=com.mycompany.webapp -DartifactId=myweb -DarchetypeArtifactId=maven-archetype-webapp
注意上述命令一行輸完再回車(chē);
一定要build成功,即圖中的“build successful”。
此時(shí)生成myweb文件目錄,如圖:
注意此在main目錄下建一個(gè)名為java的目錄,把自己的代碼源文件復制進(jìn)去;那么main目錄下resource、webapp、java都有了;這三個(gè)缺一不可;另外圖中標紅的文件不僅一個(gè)不能少,而且各自位置一定不能錯,錯一個(gè),就掛了。然后再command line下回到\myweb 目錄下,注意一定在這個(gè)目錄下,因為pom.xml也在這個(gè)目錄下,maven就是靠對pom.xml的解析進(jìn)行工作,它相當于make的makefile、ant的build.xml,否則maven會(huì )提示找不到pom文件。然后再輸入mvn package打包,注意此時(shí)一定要生成target文件目錄,否則hudson下的job文件夾下的workspace就是個(gè)空的,而且war包也在下面,沒(méi)有就不能發(fā)布了,就又掛了。
2.分析pom文件
<modelVersion>
<groupId>com.yourcompany</groupId>
<artifactId>myproject</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>myproject Maven Webapp</name>
<url>http://maven.apache.org</url>
<build>
<finalName>myproject</finalName>
</build>
modelVersion:此必需的元素說(shuō)明了本POM所使用的模型版本。
groupId:本元素表示創(chuàng )建本項目的組織的唯一標識。groupId是一個(gè)項目的核心關(guān)鍵標識之一,它基于組織的完整屬性域名。
artifactId:表示本項目的主要項目的唯一基本名。一個(gè)典型的由Maven生成的項目名稱(chēng)將會(huì )是如下的格式:<artifactId>-<version>.<extension>。 packaging:表示本項目所使用的包類(lèi)型(JAR, WAR,EAR等)。
version:表示項目的版本,Maven對于版本管理大有幫助,你會(huì )經(jīng)??吹揭粋€(gè)版本的SNAPSHOT(快照),指示項目在開(kāi)發(fā)中的不同狀態(tài)。
name:項目的顯示名稱(chēng),常用于Maven生成的文檔當中,并在構建過(guò)程中,為項目或其他的項目作為一種依賴(lài)使用。
注意:標紅的兩句是關(guān)鍵------一個(gè)指出打包的方式,因此上圖中的web文件目錄結構是關(guān)鍵,否則與打包方式不匹配,無(wú)論是在maven還是在hudson中都會(huì )出錯的!第二個(gè)注意在hudson中構建任務(wù)build的方式就選SNAPSHOT,選其他我不能保證一定不出問(wèn)題!另外"groupId"與"artifactId"missing,一定要將"i"的小寫(xiě)改成大寫(xiě);
三、Hudson對java項目實(shí)現自動(dòng)化的編譯、打包與發(fā)布
1. Hudson的全局配置
點(diǎn)擊左邊列表菜單Manage Hudson,然后點(diǎn)擊Configure System??梢詫?/span>hudson進(jìn)行系統配置,包括全局路徑和變量設置等。如下圖
注意;要修改hudson的主目錄
hudson主目錄一般默認為是
C:\WINDOWS\system32\config\systemprofile\.hudson
改成自己的如d:\hudson;(記得重啟hudson與tomcat才行);
另外設置好Maven與JDK
Maven這里的設置,就是取個(gè)名字,然后路徑中指定maven2的解壓路徑。如下圖所示
在這里設置時(shí),我一般去掉Install automatically,而是直接指定MAVEN_HOME,我的maven是裝在C:\Program Files\apache-maven-
Jdk的設置是必須的,正確的設置也是去掉Install automatically選項,直接填寫(xiě)名稱(chēng)和 JAVA_HOME我的JAVA_HOME是安裝在C:\Java\jdk
其他的可以不設立了。
2.創(chuàng )建job
點(diǎn)擊左側列表菜單的New Job,出現如下界面:
注意:選擇build a maven2 project 這一項,提示中明確指出take advantage of your
Pom files,故必須事前準備該文件;
填寫(xiě)Job name,然后選中Build a maven2 project,依個(gè)人項目設定,這里講Maven2的工程,點(diǎn)擊OK按鈕。進(jìn)入job的設置頁(yè)面如下圖所示:
Source Code Management:這里就是要結合版本控制工具的地方了,這里選用的是svn,所以設置如下:
在Repository URL里填入你的倉庫地址,svn有兩種地址,一種是http://.....這樣的,一種是svn://......的,我這里是用的第二種方式,所以填入svn://192.168.1.240/svn_py/test_yang
(注意,這里是工程的根目錄,也就是pom.xml所在的目錄,可不要填寫(xiě)成svn://192.168.1.240/svn_py/test_yang/myproject等目錄)
Build Triggers:注意前面說(shuō)了選SNAPSHOT。
配置deploy插件:
在配置頁(yè)面的Post-build Actions項下面會(huì )多出一項功能:Deploy war/ear to a container,在這里WAR/EAR file:就是填寫(xiě)hudson所打好的war包路徑,之前說(shuō)過(guò),hudson打好的war包是放在這里的,所以這里就寫(xiě)%Hudson_home%/jobs/projecct_name/ workspace/ projecct_name/ target/你的war文件的名稱(chēng).war。Container選擇你的Tomcat的版本。Manager user name:填寫(xiě)Tomcat的用戶(hù)名,默認是admin, Manager password:填寫(xiě)Tomcat的密碼,默認是空。Tomcat URL:填寫(xiě)http://localhost:8080/就ok了,至此保存就可以了,
這里一定要注意WAR/EAR file:填寫(xiě)相對路徑,不要寫(xiě)代表環(huán)境變量的相對路徑,更不能寫(xiě)絕對路徑(那會(huì )發(fā)生Ant GLOB pattern語(yǔ)法錯誤);寫(xiě)成如下即可:
或則寫(xiě)成路徑**/*.war;
最后還要注意hudson的時(shí)間與svn服務(wù)器的時(shí)間最好一致;
以上job配置完畢;
3.在svn服務(wù)器上構建web文件目錄
注意利用前面的maven構建的web項目文件目錄,如下圖:
在svn服務(wù)器自己的文件目錄下,也要構建這樣的文件目錄,這一點(diǎn)非常關(guān)鍵,否則hudson會(huì )提示諸如以下兩種錯誤:
這種錯誤要么是沒(méi)有pom文件,要么是pom文件位置不對,他的位置必須是在web項目文件根目錄下一級;
提示這錯誤主要是web.xml文件沒(méi)有或不能在正確位置,他的位置應該在WEB-INF文件夾中。
所以,在svn服務(wù)器上構建web項目文件目錄結構非常關(guān)鍵!
最后,點(diǎn)擊計劃job,在hudson控制臺就可以看見(jiàn)全過(guò)程,同時(shí)生成的war包,也部署到tomcat下的webapps文件夾下,可以通過(guò)http://localhost:8080/war包名稱(chēng),進(jìn)行web發(fā)布。
編譯、打包、發(fā)布控制臺結果如下:
發(fā)布結果如下:
附加:
自己的環(huán)境變量設置:
Classpath:\Program Files\Java\jdk1.6.0_20\bin
HUDSON_HOME:D:\HUDSON
JAVA_HOME:C:\Program Files\Java\jdk1.6.0_20
MAVEN_HOME:C:\Program Files\apache-maven-3.0.3-bin\apache-maven-3.0.3
Path:%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;.;C:\Program Files\Java\jdk1.6.0_20\lib\tool.jar;D:\Program Files\subversion-1.6.17\bin;D:\Program Files\TortoiseSVN\bin;%ANT_HOME%/bin;%ANT_HOME%/lib;%MAVEN_HOME%\bin
聯(lián)系客服