SOA面向服務架構打包部署
今天在公司打包部署SOA架構的專案。但是一直出現打包錯誤問題。現在記錄下來
1、專案結構錯誤
原先的專案結構是:
parent Maven專案中聚合了三個maven子模組
原先:parent
--common
--manager
--pojo
--interface
--dao
--service
manager-web
其中common maven模組中是公共工具類。manager是一個聚合Maven.其中包括pojo 模組、interface模組、dao模組、service模組。manager-web 模組 是controller和靜態檔案(包括HTML、js、css等)
而且Maven打包外掛是在父級中,即parent中。使用的是
spring-boot-maven-plugin:是需要有main方法才可以進行打包。否則就會報錯。異常資訊就是缺少main方法
因為spring-boot-maven-plugin是在parent中。所以對於繼承該專案的子專案。相對應的也使用了該外掛。但是對於common子模組。和manager模組中的pojo、interface、dao都沒有定義打包方式。所以在打包這些模組的時候就會報錯
所以又對專案進行改造:
將common模組、manager模組、manager-web模組從parent中抽離出來。使這三個和parent同級。也就是parent不對這三個進行聚合。parent只對jar版本進行管理。
抽離出來後的專案結構
parent中不在包含子模組。再定義打包方式。對於沒有main方法的模組進行正常的maven打包。
使用tomcat7-maven-plugin進行打包
存在main方法的使用
對於manager-web專案有一點需要注意
因為專案不是前後臺分離。所以web中包含靜態檔案。需要使用maven-resources-plugin進行資原始檔拷貝。這樣在web模組的包時。靜態資原始檔也會打包進去。否則會出現Error resolving template [index], template might not exist的異常
最後再說一下打包順序:
1、對parent進行打包使用Run AS -->Maven install
2、對common模組進行打包使用Run AS -->Maven install
3、對manager模組進行打包使用Run AS -->Maven install
4、對manager-web模組進行打包使用Run AS -->Maven install
因為我使用的是springboot 所以pom檔案中定義的都是jar。
打完jar包後。只需要將service和web兩個jar包拉出來啟動就好了。使用java -jar jar名稱或者建立一個.bat檔案
java -jar jiyunbang-manager-web-0.0.1-SNAPSHOT.jar
pause
使用技術:springboot、dubbo、zookeeper、shir