服務(wù)器發(fā)布操作

CentOS 目錄結(jié)構(gòu)

節(jié)選自 https://blog.csdn.net/qq_33858250/article/details/81839619

CentOS的目錄大體上可分為四類(lèi):管理類(lèi)、用戶(hù)類(lèi)、應(yīng)用程序類(lèi)、信息類(lèi)文件目錄。

管理類(lèi)

  • /boot
    linux的內(nèi)核及引導(dǎo)系統(tǒng)程序所需要的文件目錄
  • /bin
    存放標(biāo)準(zhǔn) linux 的工具
  • /sbin
    大多是涉及系統(tǒng)管理的命令的存放,是超級(jí)權(quán)限用戶(hù)root的可執(zhí)行命令存放地,普通用戶(hù)無(wú)權(quán)限執(zhí)行這個(gè)目錄下的命令
  • /var
    這個(gè)目錄的內(nèi)容是經(jīng)常變動(dòng)的,用來(lái)存儲(chǔ)經(jīng)常被修改的文件,如日志、數(shù)據(jù)文件、郵箱等
  • /etc
    主要存放系統(tǒng)配置方面的文件
  • /dev
    主要存放與設(shè)備有關(guān)的文件
  • /mnt
    這個(gè)目錄一般是用于存放掛載儲(chǔ)存設(shè)備的掛載目錄的,比如有cdrom 等目錄??梢詤⒖?etc/fstab的定義

用戶(hù)類(lèi)

  • /root
    系統(tǒng)管理員目錄
  • /home
    主要存放個(gè)人數(shù)據(jù)

應(yīng)用程序類(lèi)

  • /lib
    該目錄用來(lái)存放系統(tǒng)動(dòng)態(tài)鏈接庫(kù),幾乎所有的應(yīng)用程序都會(huì)用到該目錄下的共享庫(kù)
  • /tmp
    臨時(shí)目錄,有些linux會(huì)定期清理
  • /usr
    存放一些不適合放在/bin 或 /etc 目錄下的額外工具,如個(gè)人安裝的程序或工具
  • /usr/local
    主要存放那些手動(dòng)安裝的軟件,
  • /usr/bin
    用于存放程序
  • /usr/share
    用于存放一些共享數(shù)據(jù)
  • /usr/lib
    存放一些不能直接運(yùn)行,但卻是許多程序運(yùn)行所必需的一些函數(shù)庫(kù)文件
  • /opt
    主要存放可選程序,直接刪除程序不影響系統(tǒng)其設(shè)置。安裝到/opt目錄下的程序,它所有的數(shù)據(jù)、庫(kù)文件等等都是放在同個(gè)目錄下面

信息類(lèi)

  • /lost+found
    在ext2或ext3文件系統(tǒng)中,當(dāng)系統(tǒng)意外崩潰或機(jī)器意外關(guān)機(jī),而產(chǎn)生一些文件碎片放在這里。但當(dāng)突然停電、或者非正常關(guān)機(jī)后,有些文件就臨時(shí)存放在這里。
  • /proc
    操作系統(tǒng)運(yùn)行時(shí),進(jìn)程信息及內(nèi)核信息(比如cpu、硬盤(pán)分區(qū)、內(nèi)存信息等)存放在這里

Java環(huán)境

安裝JDK

官網(wǎng) https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

在官網(wǎng)下載需要的jdk版本

這樣獲取的下載地址有驗(yàn)證信息,才能夠正確下載

cd /usr/local/

創(chuàng)建下載目錄

mkdir download

開(kāi)始下載

mv jdk-8u211-linux-x64.tar.gz\?AuthParam\=1560506772_1dbba8573bc6a8588bd51d95349718d4 jdk-8u211-linux-x64.tar.gz

重命名文件

tar -zxvf jdk-8u211-linux-x64.tar.gz -C /usr/local/

解壓到

環(huán)境變量

vi /etc/profile

末尾添加

export JAVA_HOME=/usr/local/jdk1.8.0_211
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

保存退出

source /etc/profile 使生效

驗(yàn)證

發(fā)布

單模塊打包

在項(xiàng)目目錄下執(zhí)行

mvn clean package -Dmaven.test.skip=true

-Dmaven.test.skip=true 跳過(guò)單元測(cè)試

打包成功后會(huì)在項(xiàng)目根路徑下生成target目錄,依據(jù)pom文件設(shè)置的項(xiàng)目名<finalName>sell</finalName>生成jar包

服務(wù)器創(chuàng)建項(xiàng)目路徑

mkdir /opt/javaapps/

將項(xiàng)目jar文件復(fù)制到服務(wù)器

scp sell.jar root@10.2.26.161:/opt/javaapps/

多模塊打包

根項(xiàng)目下pom文件不要<build>標(biāo)簽

頂層模塊pom文件配置

    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**.*</include>
                    <include>**/*.*</include><!-- i18n能讀取到 -->
                    <include>**/*/*.*</include>
                </includes>
            </resource>
        </resources>

        <!-- 為jar包取名 -->
        <finalName>web</finalName>
        <plugins>
            <!-- 熱布署 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!--fork :  如果沒(méi)有該項(xiàng)配置,這個(gè)devtools不會(huì)起作用,即應(yīng)用不會(huì)restart -->
                    <fork>true</fork>
                    <mainClass>com.tianyi.ejiantong.EjiantongApplication</mainClass>
                    <layout>ZIP</layout>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal><!--可以把依賴(lài)的包都打包到生成的Jar包中-->
                        </goals>
                        <!--可以生成不含依賴(lài)包的不可執(zhí)行Jar包-->
                        <!-- configuration>
                          <classifier>exec</classifier>
                        </configuration> -->
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

底層被依賴(lài)模塊pom文件不要<build>標(biāo)簽

在根目錄下先clean刪除target目錄,再package生成target

分析:打包時(shí)會(huì)根據(jù)依賴(lài)關(guān)系逐層查找,所以需要在頂層模塊配置build。而根目錄下只是聲明,所以不配。

防火墻

firewall-cmd --zone=public --add-port=8080/tcp --permanent

--zone=public:表示作用域?yàn)楣驳模?/p>

--add-port=8080/tcp:添加tcp協(xié)議的端口8080;

--permanent:永久生效,如果沒(méi)有此參數(shù),則只能維持當(dāng)前服務(wù)生命周期內(nèi),重新啟動(dòng)后失效;

firewall-cmd --reload 重新加載配置
systemctl restart firewalld.service 重啟防火墻

80端口默認(rèn)未開(kāi)放

啟動(dòng)項(xiàng)目

nohup java -jar -Dserver.port=80 -Dspring.profiles.active=prod sell.jar > /dev/null 2>&1 &

-Dserver.port=80 開(kāi)啟的端口
-Dspring.profiles.active=prod 啟動(dòng)所使用的配置
nohup XXX > /dev/null 2>&1 & 讓進(jìn)程在后臺(tái)運(yùn)行

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容