來到新公司就一直有這個問題。由於現產品的軟件部分的最終形式是 EAR 包,開發人員在平常工做中即使作了一個很小的改動也要從新打一個 EAR 包部署的 JBoss 中。由於項目規模不小,因此整個打包部署的時間很長,嚴重影響了開發的效率。 服務器
曾經考慮過下面幾個解決方法: app
因此,上面三個選項都被否認了,可行的解決方法就是在應用服務器方面動腦筋了。由於咱們用的是 JBoss(仍是 4.x,很丟人的說)。因此就研究 JBoss AS 了。 dom
經過讀 JBoss AS 的文檔,發現最新的 JBoss AS 7.x 支持兩種部署格式,一個是 zipped,另外一種是 unzipped。前者指的就是常見的 war、ear 包,還有不常見的 sar 包,後者指的就是文件夾形式,可是文件夾名要帶上 .war/ear 的後綴。 模塊化
JBoss AS 默認的部署目錄是 %AS%/standalone/deployments。在默認配置下,zipped 和 unzipped 這兩個格式的應用放到部署目錄中就能夠直接部署了。可是在重部署時,默認配置下只有 zipped 格式的可以自動生效。要想 JBoss AS 也支持 unzipped 格式的自動重部署,必須修改 %AS%/standalone/configuration/standalone.xml 。具體的修改以下: spa
<subsystem xmlns="urn:jboss:domain:deployment-scanner:1.1"> <deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000" auto-deploy-exploded="true"/> </subsystem>
auto- deploy-exploded 爲要添加的內容。(你也能夠修改 scan-interval 提升加載速度) 調試
在作了上面這個簡單的配置以後,你就能夠直接修改 EAR ( or WAR) 裏面的內容了。編輯某個模塊的代碼,而後只需將相應模塊打包,直接替換 your_app.ear 中相應的 jar 包,等上幾秒,而後就生效了。不用再像過去那樣生成完整的 EAR 包再部署了。 code