天天看點

優秀程式員(java)-利器-熱部署

說說為何要熱部署:

你是不是經常做項目,改動了代碼,然後不得不重新開機伺服器。 要是碰到公司足夠吝啬,項目足夠龐大,你會發現大量的時間浪費在這上面。

(我們一直在努力,最大效率的開發出一組組産品,直到做項目跟民工砌磚一樣簡單。還好這還需要一段時間,而我們慶幸我們吃飯的技能還沒有泛濫至此,不過我看有這趨勢。)—跑題

在2002年的時候,Sun在Java 1.4的JVM中引入了一種新的被稱作HotSwap的實驗性技術,并再此後一直着力于相關研究,發現這是一個複雜而低回報的東西。 

目前,我們最常用到的熱部署:

Tomcat:

配置:在${tomcat_home}\conf\server.xml 

<Host appBase="webapps" autoDeploy="false" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">

      

這裡的autoDeploy 設定為true,即自動熱部署,而你隻需體驗他帶來的愉悅:

你可以邊修改代碼,不要重新開機即檢視最新結果;甚至對一些簡單的war應用,可以直接丢到webapp下,不需要重新開機tomcat,自動拆包;

當然,tomcat隻能對部分代碼是可以輕松完成熱部署的,随着項目的複雜度,我們需要更好的熱部署工具。

Jrebel:

此時風頭正熱的jrebel,趕上了這趟車(不知道是不是拿到風投了,到處做廣告),他是收費的,試用一個月,不過對scala語言放寬到了1年,可以申請。位址:

http://sales.zeroturnaround.com/

(題外話:像一度娘就搜到破解的行為,本人是很不贊同的)

jreble 有自己的簡介:

圖1-1: 循環:改變--重新部署等待--檢視結果--改變

優秀程式員(java)-利器-熱部署

                                   1-1

圖1-2: 調查結果,1小時内,有多長時間浪費在重新部署之上

優秀程式員(java)-利器-熱部署

                                    1-2

 圖1-3: jrebel帶來了:

優秀程式員(java)-利器-熱部署

                                      1-3

jrebel支援:

IDE:

Eclipse,IntellijIDEA,NetBeans,Oracle,Rational

buildTool:

Maven,ANT

Containers:

Tomcat,JBoss,Jetty,Websphere,resin,SAP,Mulesoft

frameworks:

spring,hibernate,jsf,struts,velocity,wicket