SpringCloud模塊打包部署

一、前言

公司項目架構是SpringCloud微服務,單個模塊是SpringBoot,由於SpringBoot項目內置Tomcat容器,所以打包時打成Jar包,部署到Linux服務器後用命令java -jar (jar包的包名)xxxx.jar啓動即可。


二、Idea中Maven生命週期

1. 9種生命週期

SpringBoot打成jar包我們一般使用spring-boot-maven-plugin這個插件
idea中maven插件生命週期

  • clean:清理,在進行真正的構建之前進行一些清理工作,移除所有上一次構建生成的文件。執行該命令會刪除項目路徑下的target文件,但是不會刪除本地的maven倉庫已經生成的jar文件。

  • validate:驗證,驗證工程是否正確,所需的信息是否完整。

  • compile:編譯源碼,編譯生成class文件。編譯命令,只編譯選定的目標,不管之前是否已經編譯過,會在你的項目路徑下生成一個target目錄,在該目錄中包含一個classes文件夾,裏面全是生成的class文件及字節碼文件。

  • test:單元測試,測試。

  • package:打包,將工程文件打包爲指定的格式,例如JAR,WAR等。這個命令擁有compile命令的功能進行編譯,同時會在target目錄下生成項目的jar/war文件。如果a項目依賴於b項目,打包b項目時,只會打包到b項目下target下,編譯a項目時就會報錯,因爲找不到所依賴的b項目,說明a項目在本地倉庫是沒有找到它所依賴的b項目,這時就用到install命令了。

  • verify:覈實,檢查package是否有效、符合標準。

  • install:安裝至本地倉庫,將包安裝至本地倉庫,以讓其它項目依賴。該命令包含了package命令功能,不但會在項目路徑下生成class文件和jar包,同時會在你的本地maven倉庫生成jar文件,供其他項目使用。如果a項目依賴於b項目,那麼install b項目時,會在本地倉庫同時生成pom文件和jar文件,解決了上面打包package出錯的問題。

  • build:功能類似compile,只是只對整個項目進行編譯。

  • site:站點,生成項目的站點文檔。

  • deploy:複製到遠程倉庫。

  • 官方Maven生命週期介紹

2. 最常用的兩種打包方法

  • clean,package,(如果報錯,很可能就是jar依賴的問題);
  • clean,install

三、項目部署到Linux

對於SpringBoot打成的jar,我們想要在服務器上運行,只需要服務器有JDK即可,因爲SpringBoot自帶Tomcat。
在服務器上運行打成的jar包,一般我們只需要執行:java -jar ****.jar 即可。

但是隻是運行上面的jar的話,如果我們關掉了xshell之類的頁面,該程序就會停掉,所以我們可以使用nohup對它進行後臺運行:nohup java -jar ****.jar &即可。

當然我們也可以在運行時指定很多參數,比如端口號等等,基本上在配置文件配置的參數我們都是可以指定的:nohup java -jar ****.jar --server.port=9091 &

上面運行的程序會默認將程序的所有日誌打到jar包所在目錄的nohup.out文件中,其中的日誌非常詳細,會導致日誌很多,一個定時任務會每天產生上百G的日誌,而我們基本會在程序中打印logger日誌,該處的日誌會顯得比較冗餘。

/usr/bin/nohup /usr/bin/java -XX:+HeapDumpOnOutOfMemoryError -Xmx2g -Xms1g -jar -Dspring.config.location=ncs-entry-template/application.properties ncs-entry-template/ncs-entry-template-1.0.0-SHAPSHOT.jar > ncs-entry-template/entry-template.log 2>& 1&

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章