從零開(kāi)始讓你的Spring?Boot項(xiàng)目跑在Linux服務(wù)器
1 搭建Linux服務(wù)器
1.1 購(gòu)買(mǎi)阿里云服務(wù)器或安裝虛擬機(jī)
這里建議是CentOS 7.X或CentOS 8.X,當(dāng)然其他的Linux如deepin、Ubuntu也可以,只是軟件環(huán)境的安裝包和安裝方式不同,跑項(xiàng)目都是差不多的
1.2 安裝JDK1.8(CentOS 8為例)
下載JDK安裝包:
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
選擇:jdk-8u291-linux-x64.tar.gz
安裝:
[root@xxx local]# tar -zxvf jdk-8u291-linux-x64.tar.gz [root@xxx local]# vim /etc/profile
修改環(huán)境變量:
export JAVA_HOME=/usr/local/jdk1.8.0_291 export JER_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin export PATH=$PATH:${JAVA_PATH}
刷新配置文件并查看安裝結(jié)果:
[root@xxx local]# source /etc/profile [root@xxx local]# java -version java version "1.8.0_291" Java(TM) SE Runtime Environment (build 1.8.0_291-b15) Java HotSpot(TM) 64-Bit Server VM (build 25.291-b15, mixed mode)
1.3 安裝MySQL
參考這篇文章:http://www.dbjr.com.cn/article/229781.htm
1.4 安裝Maven(非必要)
為什么說(shuō)安裝Maven不是必要的呢?
因?yàn)镴ava具有跨平臺(tái)的特性,可以在Windows環(huán)境下打包成Jar文件或者war文件,在Linux上一樣可以直接運(yùn)行!
Linux安裝Maven的作用:
進(jìn)行項(xiàng)目的編譯和打包,當(dāng)然也可以直接運(yùn)行
安裝步驟:
下載Maven安裝包:
https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.8.1/binaries/apache-maven-3.8.1-bin.tar.gz
放到Linux上解壓并修改配置文件:
[root@xxx local]# tar -zxvf apache-maven-3.8.1-bin.tar.gz [root@xxx local]# vim /etc/profile
修改環(huán)境變量:
export MAVEN_HOME=/opt/apache-maven-3.8.1 export PATH=$MAVEN_HOME/bin:$PATH
刷新配置文件并驗(yàn)證:
[root@xxx local]# source /etc/profile [root@xxx local]# mvn -v Apache Maven 3.8.1 (05c21c65bdfed0f71a2f2ada8b84da59348c4c5d) Maven home: /opt/apache-maven-3.8.1 Java version: 1.8.0_141, vendor: Oracle Corporation, runtime: /usr/local/jdk1.8.0_141/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "4.18.0-193.14.2.el8_2.x86_64", arch: "amd64", family: "unix"
別忘了!Maven配置阿里云鏡像:
[root@xxx apache-maven-3.8.1]# pwd /opt/apache-maven-3.8.1 [root@xxx apache-maven-3.8.1]# vim conf/settings.xml
大約是在第140多行左右:
<mirrors> <!-- 阿里云倉(cāng)庫(kù) --> <mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>https://maven.aliyun.com/repository/public</url> </mirror> <mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/repositories/central/</url> </mirror> <!-- 中央倉(cāng)庫(kù)1 --> <mirror> <id>repo1</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://repo1.maven.org/maven2/</url> </mirror> <!-- 中央倉(cāng)庫(kù)2 --> <mirror> <id>repo2</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://repo2.maven.org/maven2/</url> </mirror> </mirrors>
2 項(xiàng)目部署運(yùn)行
2.1 項(xiàng)目編譯打包(Windows環(huán)境下打包成jar文件)
項(xiàng)目的編譯和打包一般有兩種方式
(1)直接在IDEA中進(jìn)行項(xiàng)目的打包
(2)使用命令行方式
在含有pom.xml文件的目錄下使用cmd
執(zhí)行mvn clean package
命令
這樣就代表成功啦,然后就會(huì)發(fā)現(xiàn)多了一個(gè)target目錄和一個(gè)jar 文件
以上兩個(gè)過(guò)程在Linux下也是一樣的!(前提是Linux也安裝了Maven)
2.2 部署運(yùn)行
(1)方式一:可以是未編譯成Jar文件情況下
cd到需要運(yùn)行的項(xiàng)目主目錄下,pom.xml文件的目錄
[root@xxx placard_demo]# ll -rw-r--r-- 1 root root 10519 May 27 08:17 placard_demo.iml -rw-r--r-- 1 root root 5989 May 27 08:17 pom.xml -rw-r--r-- 1 root root 1366 Apr 1 22:36 README.md drwxr-xr-x 4 root root 30 Apr 1 10:21 src drwxr-xr-x 5 root root 61 May 27 14:24 target
使用mvn spring-boot:run
命令運(yùn)行
如果長(zhǎng)時(shí)間運(yùn)行請(qǐng)使用nohup mvn spring-boot:run
(2)方式二:已經(jīng)有Jar文件情況下
cd到需要運(yùn)行的項(xiàng)目主目錄的target目錄下,jar文件的目錄
[root@xxx target]# ll total 56372 drwxr-xr-x 6 root root 92 May 27 14:23 classes drwxr-xr-x 2 root root 28 Jun 27 15:06 maven-archiver drwxr-xr-x 3 root root 35 May 27 14:23 maven-status -rw-r--r-- 1 root root 42572685 Jun 27 15:07 placard_demo-0.0.1-SNAPSHOT.jar -rw-r--r-- 1 root root 15147851 Jun 27 15:07 placard_demo-0.0.1-SNAPSHOT.jar.original drwxr-xr-x 3 root root 17 May 27 14:24 test-classes
使用java -jar xxx.jar
命令運(yùn)行
如果長(zhǎng)時(shí)間運(yùn)行請(qǐng)使用nohup java -jar xxx.jar
2.3 注意事項(xiàng)
使用nohup運(yùn)行時(shí)會(huì)產(chǎn)生一個(gè)日志文件nohup.out
,包含項(xiàng)目運(yùn)行時(shí)的全部控制臺(tái)日志輸入,所以報(bào)錯(cuò)信息就可以根據(jù)它來(lái)查看。
2.4 常見(jiàn)問(wèn)題
(1)jar文件無(wú)法運(yùn)行
Linux的文件權(quán)限分為可讀、可寫(xiě)、可執(zhí)行,分別用r、w、x表示
所以無(wú)法運(yùn)行可能是權(quán)限的問(wèn)題,使用ll或ls -a
命令查看jar文件的權(quán)限
改變權(quán)限:
chmod 777 xx.jar 或 chmod ugo+x xx.jar
當(dāng)然這是一種不太安全的行為,因?yàn)榘阉杏脩?/span>都賦予了對(duì)該文件的全部權(quán)限,相對(duì)安全的做法請(qǐng)自字百度下chmod 的用法。
(2)查看后臺(tái)進(jìn)程
ps -ef|grep java
如果后臺(tái)有進(jìn)程,大家就可以利用客戶端測(cè)試?yán)玻?/p>
總結(jié)
到此這篇關(guān)于Spring?Boot項(xiàng)目跑在Linux服務(wù)器的文章就介紹到這了,更多相關(guān)Spring?Boot項(xiàng)目在Linux服務(wù)器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springboot視圖解析器ViewResolver使用實(shí)例
這篇文章主要介紹了Springboot視圖解析器ViewResolver使用實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04spring/springboot整合curator遇到的坑及解決
這篇文章主要介紹了spring/springboot整合curator遇到的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05Java實(shí)現(xiàn)多個(gè)數(shù)組間的排列組合
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)多個(gè)數(shù)組間的排列組合,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02詳解Java volatile 內(nèi)存屏障底層原理語(yǔ)義
為了保證內(nèi)存可見(jiàn)性,java 編譯器在生成指令序列的適當(dāng)位置會(huì)插入內(nèi)存屏障指令來(lái)禁止特定類(lèi)型的處理器重排序。為了實(shí)現(xiàn) volatile 內(nèi)存語(yǔ)義,JMM 會(huì)分別限制這兩種類(lèi)型的重排序類(lèi)型2021-09-09深入Java7的一些新特性以及對(duì)腳本語(yǔ)言支持API的介紹
本篇文章是對(duì)Java7的一些新特性以及對(duì)腳本語(yǔ)言支持API的概述,需要的朋友參考下2013-05-05JDK都出到14了,你有什么理由不會(huì)函數(shù)式編程(推薦)
這篇文章主要介紹了JDK都出到14了,你有什么理由不會(huì)函數(shù)式編程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05