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