linux小白成長之路9————打包部署SpringBoot項目


【內容指引】
SpringBoot項目介紹;
打包SpringBoot項目:
1.pom.xml;
2.application.properties配置;
3.application-dev.properties配置;
4.application-prod.properties配置;
5.data.sql;
6.打包設置。
將jar包部署到linux服務器:
1.將jar包從Mac上傳到遠程linux服務器;
2.在Mysql中創建數據庫實例;
3.以生產配置的方式運行jar包。
相關技巧
1.刪除數據庫;
2.查看進程;
3.根據端口查進程;
4.殺死指定進程 。

一、SpringBoot項目介紹

本例用於演示打包部署的java項目有如下特點:
1.采用jar包(而不是war包的方式)的方式打包;
2.雙配置:開發環境采用內置的內存數據庫h2,生產環境采用Mysql數據庫。前兩篇已經在服務器中用Docker的方式安裝了Mysql。

二、打包SpringBoot項目

1.pom.xml

需要特別說明的配置如下:
打包方式

<packaging>jar</packaging>

 

數據庫相關依賴
依賴JPA、h2數據庫、Mysql數據庫

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

 

編譯插件

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

 

以上配置都在“雲開發”平台生成項目初始化代碼時設定好了,無須額外修改。

2.application.properties配置

默認啟用開發配置"dev"。打包時改為“prod”,啟用生產配置。

#Profile設置
spring.profiles.active=dev

 

3.application-dev.properties配置

開發配置保持默認即可,無特殊說明。

4.application-prod.properties配置

需要注意的配置如下:
JPA配置
與前面Docker中運行的Mysql容器一致,這里設置數據庫名為“pscms”,用戶名為“root”,密碼為“123456”

#JPA
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/pscms?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=123456
spring.jpa.hibernate.ddl-auto=update

 

端口
Tomcat端口(server.port)以及應用監控端口(management.port)不要與目標服務器上已用的端口號沖突了(必要的情況下,還需要在目標服務器的防火牆中允許這兩個端口).

其它配置不用修改,保持“雲開發”平台初始化的生產配置即可。

5.data.sql

這里是為Spring Security初始化兩個用戶的sql腳本,注意,表名一律用小寫字母,否則可能發布時會報找不到表的異常。

6.打包設置

在"IntelliJ IDEA"的頂部右邊選擇“Edit Configurations”:

添加一個Maven配置:

取一個名稱,如“cms”,然后在Command line中輸入“clean package”,如下圖所示:

如下圖,點擊“運行”按鈕,執行打包:

注意
由於啟用了生產環境的配置,打包前需要Mysql數據庫實例“pscms”是可以正常訪問的,否則會導致編譯失敗。

 

會生成一個名為"cms-0.0.1.SNAPSHOT.jar"的jar包,其中“cms”是本示范項目的項目名:

三、將jar包部署到linux服務器

1.將jar包從Mac上傳到遠程linux服務器

可以先將本項目target目錄中的jar包重命名為"cms.jar":

右鍵拷貝jar包本地地址:

本例不上傳到遠程服務器,而是CentOS虛擬機。
查詢指導虛擬機的ip是“192.168.10.121”,用戶名是"parallels",桌面地址是“/home/parallels/Desktop”,在Mac終端中用scp拷貝jar包到虛擬機中(從虛擬機的linux終端上傳jar包到遠程linux服務器的方法相同)。
指令語法:scp -r 本地jar包路徑 遠程服務器用戶名@服務器IP:遠程存放jar包的路徑
指令:

scp -r /Users/mac.manon/workspace/JavaProjects/mobi_weiapp_cms/target/cms.jar parallels@192.168.10.121:/home/parallels/Desktop

 

現在虛擬機桌面就有了cms.jar:

2.在Mysql中創建數據庫實例:

在SpringBoot的生產配置中,我們需要連接的Mysql數據庫實例為“pscms”,這里,我們在虛擬機中,登錄docker創建數據庫,否則運行jar報無法連接的異常。步驟如下:

登錄容器:

docker exec -it first-mysql bash

登錄Mysql:

mysql -u root -p

輸入密碼:
創建數據庫:

CREATE DATABASE `pscms` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

 

創建成功后退出mysql(quit)、退出容器(exit)。

3.以生產配置的方式運行jar包

指令:

java -jar /home/parallels/Desktop/cms.jar --spring.profiles.active=prod

 

現在可以在CentOS本地火狐瀏覽器中用http://localhost:8888訪問了,如果在Mac中訪問則將localhost換為虛擬機的ip(如無法訪問,則可能是防火牆的原因)。

四、相關技巧

1.刪除數據庫

指令:

DROP DATABASE `pscms`;

2.查看進程

如查看java的相關的進程
指令:

ps -ef|grep java


如下圖,我們看到cms.jar的進程為30894

 

3.根據端口查進程

如果用方法2查詢沒找到cms.jar的進程時,我們可以根據該程序占用的端口“8888”查詢。
指令:

netstat -lntp 8888

 

4.殺死指定進程

指令:

kill -9 進程號

 

殺死進程后,發布的SpringBoot項目就無法訪問了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM