基於maven的javaweb項目模塊化開發
引言
考慮團隊擁有多個相似項目的狀況,好比一些功能差別不大的cms系統,這些系統有相同的基礎代碼。css
若是每一個項目拷貝整套代碼,進行獨立管理,那麼維護代價很大,若是要修改一個基礎代碼,須要修改全部項目的相同地方的代碼。html
因此要找一個把項目模塊化的方法,以便於維護。java
目標
- 最重要的是實現基礎代碼複用,包括java代碼,以及webapp中的jsp,css,js等代碼;
- 多個開發者能夠方便獲取和修改基礎代碼,最好有集中式的模塊遠程倉庫;
- 可以在脫離模塊遠程倉庫的狀況下,實現本地多模塊編譯集成,這樣萬一出差在外也能工做;
- 可以方便的合併多個模塊,最好一兩條命令能實現;
- 修改代碼後可以快速的在服務器(好比tomcat)上運行,方便調試;
方案簡述
爲了實現上訴目標,通過兩天的調研和實踐,提出了以下方案:web
- 採用maven多模塊技術;
- 基礎的java代碼做爲一個模塊ma.jar,採用jar打包;
- 基礎的webapp文件及關聯緊密的java代碼,做爲模塊mb.war,採用war打包;
- 採用nexus服務器集中管理模塊,好比ma.jar和mb.war;
- 實際的項目在pom.xml文件中聲明依賴ma.jar和mb.war;
- mb.war是war文件,採用maven的overlays技術實現合併,主要策略是後來的war包文件不能覆蓋已有的war包文件;
- 在eclipse-kepler下開發,配置項目的Deployment Assembly,指定target/項目名稱 = / ,而後項目發佈到eclipse的tomcat。 即項目運行mvn package之後,tomcat將運行結果war包;
相信有更好的方案,歡迎賜教。apache
詳細配置
未完待續...tomcat