java项目构建部署包
?
- 博客分類:
- JAVA
???? Java 工程在生產(chǎn)環(huán)境運行時,一般需要構(gòu)建成一個jar,同時在運行時需要把依賴的jar添加到classpath中去,如果直接運行添加classpath很不方便,比較方便的是創(chuàng)建一個shell腳本。在公司項目中看到把工程代碼和依賴jar包合并到一塊,省去設(shè)置classpath的麻煩。但這樣把項目jar依賴綁定死,被其它項目引入,容易造成jar依賴沖突,如果用maven管理java項目,導(dǎo)致提交到公司倉庫jar過于龐大,同時也失去maven對jar依賴管理的作用。
??? 為了方便java項目部署運行,這里為構(gòu)建部署包定義一個固定格式:
/java 項目
?? /lib??? --存放所有依賴jar
?? /conf?? --存放配置文件,例如:log4j, spring, properties等配置文件,不放入jar是為
???????????? 了方便修改這些配置文件
?? /logs?? --運行時自動創(chuàng)建的目錄,存放日志文件
?? /bin??? --存放運行腳本: server.sh 啟動和停止項目運行。
如果在構(gòu)建部署包時,需要我們手動去創(chuàng)建這樣的目錄,把文件拷貝相應(yīng)目錄,實在是太繁瑣了,幸好maven為我們這樣“懶惰”coder提供了一個很好的plugin:maven-assembly-plugin,可以去定制這樣的部署結(jié)構(gòu)
1:配置maven-assembly-plugin
2:assembly 配置打包格式
? ? 定義在assembly.xml文件中,文件中配置信息不作過多解釋,可以參考相應(yīng)文檔
Java代碼 ?
下面這段配置主要從src/main/scripts目錄獲取shell腳本復(fù)制到bin目錄。同時設(shè)置文件模式為unix,文件具有可執(zhí)行權(quán)限。
?
3:啟動類設(shè)計
在學(xué)習(xí)metamorphosis的時候,對它的啟動腳本做了一些了解,發(fā)現(xiàn)服務(wù)stop方式設(shè)計比較優(yōu)雅,通過JMX連接JVM,去關(guān)閉系統(tǒng)內(nèi)部資源,再kill掉進程。
UeapServerMBean定義stop方法,實現(xiàn)類UeapServer完成系統(tǒng)啟動加載和停止功能。ServerStartup是main方法入口,調(diào)用 UeapServer啟動方式,并注冊 UeapServer到JMX中。
4:啟動腳本
系統(tǒng)啟動腳本分為了兩個文件:
env.sh 配置一些環(huán)境變量和JVM參數(shù),實際應(yīng)用中只需要修改 SERVER_NAME、? STARTUP_CLASS和 UEAP_JVM_ARGS變量名稱。
server.sh 實際運行腳本,提供啟動、停止、運行狀態(tài)查詢、重啟功能,實際應(yīng)用中不需要改動該文件。
?
env.sh
?
Java代碼 ??
server.sh
?
Java代碼 ??4:執(zhí)行mvn install或者mvn package 可以再target生成tar.gz后綴文件。提交到linux系統(tǒng),解壓縮即可運行。(不考慮window環(huán)境)
?
- 大小: 37 KB
- 查看圖片附件
總結(jié)
以上是生活随笔為你收集整理的java项目构建部署包的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux Shell中各种分号和括号的
- 下一篇: c++中关于字符串的读入——cin、ge