中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站建設(shè) 王衛(wèi)洲關(guān)鍵詞排名優(yōu)化易下拉排名

網(wǎng)站建設(shè) 王衛(wèi)洲,關(guān)鍵詞排名優(yōu)化易下拉排名,政府網(wǎng)站建設(shè)總體要求,dz做電影網(wǎng)站項(xiàng)目打包 ? 在部署項(xiàng)目前需要對(duì)源碼進(jìn)行打包&#xff0c;一個(gè)簡(jiǎn)單的SpringBoot項(xiàng)目默認(rèn)是打包為jar包&#xff0c;也就是在pom.xml中的<packaging>jar</packaging>方式&#xff0c;當(dāng)然也會(huì)有一些打包成war包方式&#xff0c;使用外置的Tomcat應(yīng)用服務(wù)器部署war包…

項(xiàng)目打包

? 在部署項(xiàng)目前需要對(duì)源碼進(jìn)行打包,一個(gè)簡(jiǎn)單的SpringBoot項(xiàng)目默認(rèn)是打包為jar包,也就是在pom.xml中的<packaging>jar</packaging>方式,當(dāng)然也會(huì)有一些打包成war包方式,使用外置的Tomcat應(yīng)用服務(wù)器部署war包,那么就是<packaging>war</packaging>。

在父子類聚合項(xiàng)目中,父工程的pom.xml文件中的打包方式就需要改為pom,如下:

<packaging>pom</packaging>

那么所有的子工程pom.xml中,就需要改為jar方式,或者war

jar包是默認(rèn)的打包方式,子工程如果是打包成jar包那么不需要改任何配置,war包時(shí)如下配置

<packaging>war</packaging>

并且所有的子工程中需要,導(dǎo)入maven插件配置

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><executable>true</executable><layout>JAR</layout></configuration><executions><execution><goals><goal>repackage</goal></goals><configuration><attach>false</attach></configuration></execution></executions></plugin></plugins>
</build>

執(zhí)行打包

在具有maven環(huán)境的情況下,到父工程pom.xml文件所在目錄下執(zhí)行

mvn clean package

即可將此父工程下所有子工程進(jìn)行打包,假如這里得到了三個(gè)jar包為consumer.jar、provider1.jar、provider2.jar

那么就可以手動(dòng)執(zhí)行部署了。

命令行部署

使用命令行方式去部署3個(gè)jar包,可以說非常簡(jiǎn)單,但還要考慮項(xiàng)目中需要的一些環(huán)境:

  • 服務(wù)器需要由java的jdk環(huán)境,能使用java命令
  • 假如項(xiàng)目中用到了nacos,那么還需要做好nacos環(huán)境的配置及服務(wù)的啟動(dòng)
nohup java -jar consumer.jar > consumer.logs.log 2 >&1 &
nohup java -jar provider1.jar > provider1.logs.log 2 >&1 &
nohup java -jar provider2.jar > provider2.logs.log 2 >&1 &

nohup:不掛斷運(yùn)行

> xxx.logs.log 2 > &1 &:將程序日志輸出到某個(gè)位置并且后臺(tái)運(yùn)行。

那么這些都是手動(dòng)運(yùn)行,目前而言大多都采用了自動(dòng)化部署。

Jenkins

手動(dòng)運(yùn)行需要每次都去上傳jar包,然后更新jar重啟服務(wù)。若服務(wù)數(shù)量較少還比較好,一旦遇到微服務(wù)多jar包情況下,手動(dòng)就會(huì)顯得很繁瑣而無助?;蛘哒f可以采用shell腳本的方式去部署,但這都不是最優(yōu)秀的解決方案??梢允褂肑enkins部署運(yùn)行服務(wù)。

介紹

Jenkins的前身是Hudson。Jenkins是一款較為流行的開源持續(xù)集成工具,地位幾乎可以說是CI&CD軟件領(lǐng)導(dǎo)者,已經(jīng)超過了Hudson,它擁有超過1000個(gè)插件來支持項(xiàng)目的構(gòu)建和部署。幾乎可以適用于所有的項(xiàng)目,沒有項(xiàng)目編程語言的限制。

CI&CD:

  • 持續(xù)集成(Continuous Integration,CI):指的是團(tuán)隊(duì)成員每天一次或多次把代碼集成到主干。每次集成會(huì)自動(dòng)構(gòu)建,盡快盡早發(fā)現(xiàn)錯(cuò)誤。持續(xù)集成是為了讓產(chǎn)品快速迭代,同時(shí)保證高質(zhì)量。
  • 持續(xù)交付(Continuous Delivery):指的是持續(xù)將新的功能部署到類生產(chǎn)環(huán)境(可理解為測(cè)試環(huán)境qa、uat),交給質(zhì)量團(tuán)隊(duì)或用戶,交給它們?cè)u(píng)審
  • 持續(xù)部署(Continuous Deployment):指的是通過評(píng)審后,自動(dòng)部署到生產(chǎn)環(huán)境中

Jenkins的特性:

  • 系統(tǒng)平臺(tái)無關(guān)性:Jenkins本身是由Java語言編寫,理論上只要由java的運(yùn)行環(huán)境,就能使用Jenkins
  • 編程語言無關(guān)性:支持多種編程語言的項(xiàng)目持續(xù)集成、持續(xù)部署,而非只有java一種
  • 安裝和配置簡(jiǎn)單:可以通過yum安裝或war包、Docker方式等,由簡(jiǎn)潔易用的web界面完成配置
  • 插件豐富:擁有超過1000個(gè)插件,幾乎可以滿足任何項(xiàng)目的需要
  • 容易擴(kuò)展:Jenkins可以通過其插件架構(gòu)進(jìn)行擴(kuò)展,為用戶提供無限可能
  • 分布式構(gòu)建:Jenkins能使多臺(tái)服務(wù)器一起構(gòu)建
  • 消息通知:構(gòu)建完成后發(fā)送email通知結(jié)果

下載和安裝

Jenkins的官網(wǎng)地址是https://www.jenkins.io/,下載軟件包的地址https://www.jenkins.io/download/。推薦下載LTS(長(zhǎng)期支持)版本。筆者這里選擇Generic Java package(.war),只需要java環(huán)境即可。

當(dāng)然要注意你選擇版本要和你本地的jdk環(huán)境的兼容關(guān)系:

在這里插入圖片描述

筆者是java8的環(huán)境,選擇一款適用的jenkins版本即可。筆者選擇2.346.3版本。

提供下下載地址:https://get.jenkins.io/war-stable/2.346.3/jenkins.war

運(yùn)行

  • war包下載完畢后,不需要額外的步驟(前提是有java環(huán)境),是可以直接運(yùn)行的
java -jar jenkins.war --httpPort=8085
  • –httpPort是設(shè)置程序端口號(hào),若要使程序不掛斷后臺(tái)運(yùn)行,可以這樣執(zhí)行
nohup java -jar jenkins.war --httpPort=8085 > jenkins-logs.log 2 >&1 &

服務(wù)運(yùn)行后,成功訪問UI頁面,記得需要打開防火墻的端口哦

firewall-cmd --permanent --zone=public --add-port=8085/tcp
firewall-cmd --reload
  • 打開jenkins的UI地址(筆者這里是http://192.168.1.41:8085)

在這里插入圖片描述

我們需要去上面的相應(yīng)文件中去找到密碼,然后填寫,確定即可。

注意:第一次啟動(dòng)Jenkins會(huì)初始化去下載一些元(metadata)數(shù)據(jù),打開界面時(shí)提示等待大概4分鐘,等待期間,使用F12調(diào)試時(shí),看到報(bào)錯(cuò)503是正?,F(xiàn)象。等待日志打印Jenkins is fully up adn running 即可

  • 下一步會(huì)讓用戶安裝插件,若是新手可以選擇Jenkins推薦的插件,可以減少很多的步驟。筆者這里也選擇推薦的插件了,唯一的缺點(diǎn)是下載的東西多,稍微會(huì)慢點(diǎn)。

  • 完成后創(chuàng)建一個(gè)管理員用戶

在這里插入圖片描述

Jenkins配置

Jenkins初始化完成后,還需要配置一些全局工具,如jdk,maven,git。在Jenkins后臺(tái)頁面點(diǎn)擊Manage Jenkins,再點(diǎn)擊Global Tool Configuration配置全局工具JDK、maven、git

配置maven

在這里插入圖片描述

找好你的settings.xml文件的路徑,配置到這里即可。然后再去配置maven的路徑

在這里插入圖片描述

注意:如果你的maven的bin目錄沒有可執(zhí)行的權(quán)限,要記得增加可執(zhí)行權(quán)限,否則執(zhí)行命令時(shí)會(huì)報(bào)錯(cuò):Permission denied,可以在maven的根目錄下使用命令賦權(quán):chmod +x -R bin

配置jdk

直接輸入JAVA_HOME的安裝地址即可

在這里插入圖片描述

最后配置git的目錄,記得先安裝git

yum install -y git

使用yum安裝的git,目錄是/usr/bin/git

在這里插入圖片描述

GitLab簡(jiǎn)介&安裝

持續(xù)集成一般有3個(gè)組成的要素:

  • 一個(gè)自動(dòng)構(gòu)建的過程,代碼檢出、編譯構(gòu)建等過程都是自動(dòng)完成,無需人工
  • 一個(gè)代碼存儲(chǔ)庫(SVN或git)
  • 一個(gè)持續(xù)集成服務(wù)器(如Jenkins)

現(xiàn)在還缺少一個(gè)代碼存儲(chǔ)庫。在企業(yè)中為了掌握代碼的所有權(quán),一般都會(huì)自動(dòng)搭建代碼存儲(chǔ)庫。可以使用Gitlab。

GitLab使用git作為代碼管理工具,并且在此基礎(chǔ)上開發(fā)了Web管理頁面來進(jìn)行項(xiàng)目管理。

與github最大的不同是,gitlab部署在自己的服務(wù)器上,所有權(quán)都是掌握在自己手中。

采用yum方式安裝GitLab

  • 安裝需要的依賴和設(shè)置ssh開機(jī)自啟動(dòng),開啟ssh及配置防火墻
yum install -y curl policycoreutils-python openssh-server
systemctl enable sshd
systemctl start sshd
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
systemctl reload firewalld
  • 安裝Postfix并設(shè)置開機(jī)自啟動(dòng)、開啟Postfix,便于郵件通知
yum install -y postfix
systemctl enable postfix
systemctl start postfix
  • 添加Gitlab軟件包存儲(chǔ)庫并安裝軟件包
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | bash
  • 配置Gitlab訪問地址并安裝Gitlab(http://192.168.1.41是gitlab訪問地址)
EXTERNAL_URL="http://192.168.1.41" yum install -y gitlab-ee
  • 打開防火墻端口(或關(guān)閉防火墻)
firewall-cmd --permanent --zone=public --add-port=80/tcp
firewall-cmd --reload
  • 完成后,打開http://192.168.1.41,第一次進(jìn)入時(shí)需要去/etc/gitlab/initial_root_password找下初始化密碼,然后登錄即可

在這里插入圖片描述

Docker方式安裝Gitlab

使用Docker方式安裝Gitlab是比較快捷的方式,如下命令即可:

mkdir -p /data/gitlab # 先創(chuàng)建gitlab存儲(chǔ)數(shù)據(jù)、配置、日志的目錄docker run -d --hostname 192.168.1.41:80 --publish 443:443 --publish 80:80 --publish 23:22 --name gitlab --restart always --volume /data/gitlab/config:/etc/gitlab --volume /data/gitlab/logs:/var/log/gitlab --volume /data/gitlab/data:/var/opt/gitlab gitlab/gitlab-ee:latest

-d : 后臺(tái)運(yùn)行

–hostname:gitlab服務(wù)地址

–publish或-p:宿主機(jī)和容器的端口映射

–name 設(shè)置容器名稱

–volume或-v:宿主機(jī)和容器的目錄映射

–restart always: 開機(jī)自啟

Gitlab常用命令

  • gitlab-ctl start:啟動(dòng)
  • gitlab-ctl stop:停止
  • gitlab-ctl status:查看
  • gitlab-ctl restart:重啟

Jenkins+Gitlab部署運(yùn)行

現(xiàn)在已經(jīng)有了存儲(chǔ)庫,然后創(chuàng)建git倉庫把項(xiàng)目上傳到Gitlab上面。

git init 
git remote add origin http://192.168.1.41/root/jenkins-demo.git
git add .
git commit -m "Initial commit"
git push -u origin main

這些就比較簡(jiǎn)單了,筆者這里不再贅述了。直接展示下項(xiàng)目的目錄

在這里插入圖片描述

需要注意的是:如果普通用戶push代碼,可能會(huì)沒有權(quán)限,管理員設(shè)置下即可。

Jenkins頁面創(chuàng)建任務(wù)

  • 在Jenkins頁面點(diǎn)擊新建項(xiàng)目(New Item),輸入項(xiàng)目名稱(名稱隨便取,別重復(fù))。選擇自由風(fēng)格項(xiàng)目。

在這里插入圖片描述

  • 在General一欄輸入描述,可以任意填寫,重要的是源代碼管理,倉庫地址就填寫gitlab的項(xiàng)目地址,然后添加你的gitlab賬號(hào)的憑證(賬號(hào)密碼)。
  • 完成后,下面有一個(gè)分支選擇,選擇你要部署的分支即可。

在這里插入圖片描述

  • 來到構(gòu)建這一欄,點(diǎn)擊添加構(gòu)建步驟,選擇Invoke toplevel maven targets(調(diào)用頂層 Maven 目標(biāo))項(xiàng),maven版本選擇配置好的,目標(biāo)Goals填寫clean package

在這里插入圖片描述

這里的maven命令不需要添加mvn,請(qǐng)注意!!

  • 打包完成后,就可以運(yùn)行jar包了,再增加一個(gè)構(gòu)建步驟,選擇Excecute shell,執(zhí)行shell命令,在Command輸入以下命令,考慮到可能出現(xiàn)第二次部署時(shí),需要把上一次的jar停止,那么命令如下
#!/bin/bash
# 先停止進(jìn)程
ps -ef |grep consumer |grep -v 'grep' | awk '{print $2}' | xargs kill -s 15
ps -ef |grep provider-8001 |grep -v 'grep' | awk '{print $2}' | xargs kill -s 15
ps -ef |grep provider-8002 |grep -v 'grep' | awk '{print $2}' | xargs kill -s 15
sleep 5s	# 5s后再啟動(dòng)
BUILD_ID=dontKillMe	# 表示別干掉啟動(dòng)的程序
cd consumer/target/
nohup java -jar consumer-1.0-SNAPSHOT.jar > consumer.logs.log 2 >&1 &
cd ../../provider-8001/target/
nohup java -jar provider-8001-1.0-SNAPSHOT.jar > provider1.logs.log 2 >&1 &
cd ../../provider-8002/target/
nohup java -jar provider-8002-1.0-SNAPSHOT.jar > provider2.logs.log 2 >&1 &

完事后,保存即可。

在這里插入圖片描述

  • 點(diǎn)擊立即構(gòu)建,即可

在這里插入圖片描述

同時(shí)還可以去看日志信息:

在這里插入圖片描述

我們可以到服務(wù)器上看下程序有沒有啟動(dòng)成功

ps -ef |grep java

在這里插入圖片描述

成功部署了三個(gè)jar包。

Webhook網(wǎng)絡(luò)鉤子

當(dāng)我們需要每次提交合并代碼時(shí),自動(dòng)進(jìn)行項(xiàng)目部署時(shí),可以使用網(wǎng)絡(luò)鉤子Webhook完成我們的需求。

大致流程就是:Jenkins提供一個(gè)地址,當(dāng)代碼有更新時(shí)代碼存儲(chǔ)庫(gitlab)主動(dòng)調(diào)用一次這個(gè)地址,觸發(fā)Jenkins構(gòu)建即可。

需要在Jenkins上面安裝Generic Webhook Trigger插件

在這里插入圖片描述

到項(xiàng)目主界面,點(diǎn)擊配置,到構(gòu)建觸發(fā)器那里,選擇Generic Webhook Trigger一項(xiàng),然后添加一個(gè)Token(隨便寫,但不要重復(fù)了)

在這里插入圖片描述

那么,構(gòu)建的URL格式如下:

http://JENKINS_URL/generic-webhook-trigger/invoke/invoke?token=剛剛自定義的Token

JENKINS_URL:是JENKINS的訪問地址。

此項(xiàng)目中就是如下

http://192.168.1.41:8085/generic-webhook-trigger/invoke/invoke?token=nihaowoshichufaqi

回到gitlab

因?yàn)镚itlab10.6版本后,為了安全,默認(rèn)不允許向本地網(wǎng)絡(luò)發(fā)送Webhook請(qǐng)求,這里因?yàn)楣P者是把gitlab和jenkins安裝到一臺(tái)服務(wù)器了,所以這里先允許發(fā)送本地網(wǎng)絡(luò)webhook。

在這里插入圖片描述

到gitlab項(xiàng)目中,設(shè)置webhook即可。這里暫時(shí)寫所有分支push時(shí)觸發(fā)了,實(shí)際可以按照項(xiàng)目情況執(zhí)行。

在這里插入圖片描述

配置完成

完成后,即可提交任意分支的代碼,看到j(luò)enkins已經(jīng)自動(dòng)觸發(fā)構(gòu)建了,并且jar也重新啟動(dòng)了

在這里插入圖片描述
在這里插入圖片描述

http://m.risenshineclean.com/news/66108.html

相關(guān)文章:

  • 網(wǎng)站建設(shè)域名什么意思付費(fèi)推廣有幾種方式
  • 北京知名網(wǎng)站建設(shè)公司東莞百度seo哪里強(qiáng)
  • 我英文網(wǎng)站建設(shè)石家莊網(wǎng)站seo
  • 南昌網(wǎng)站建設(shè)公司好么外貿(mào)營(yíng)銷型網(wǎng)站設(shè)計(jì)
  • c 網(wǎng)站開發(fā) 視頻網(wǎng)絡(luò)營(yíng)銷案例分析論文
  • 網(wǎng)站制作二級(jí)網(wǎng)頁怎么做網(wǎng)絡(luò)推廣預(yù)算方案
  • wordpress的圖片插件優(yōu)化防疫措施
  • 山西互聯(lián)網(wǎng)公司ui設(shè)計(jì)師招聘網(wǎng)aso關(guān)鍵詞排名優(yōu)化是什么
  • 精品網(wǎng)站建設(shè)公司域名查詢官網(wǎng)
  • 網(wǎng)站推廣軟文范例排名優(yōu)化哪家專業(yè)
  • 上海做網(wǎng)站公司品劃網(wǎng)絡(luò)app推廣平臺(tái)有哪些
  • 三合一網(wǎng)站和傳統(tǒng)網(wǎng)站百度賬號(hào)管理中心
  • 群團(tuán)組織網(wǎng)站建設(shè)網(wǎng)絡(luò)營(yíng)銷與管理
  • 網(wǎng)站建設(shè)需要政府集中采購嗎百度快照投訴中心人工電話
  • 微站是什么意思網(wǎng)站設(shè)計(jì)開發(fā)網(wǎng)站
  • 微信的微網(wǎng)站模板下載不了營(yíng)銷型網(wǎng)站策劃書
  • 中衛(wèi)網(wǎng)站推廣制作電商培訓(xùn)課程
  • 建站之星備案百度推廣售后
  • 網(wǎng)站建設(shè)服務(wù)哪家好seo免費(fèi)推廣
  • 手機(jī)網(wǎng)站制作服務(wù)機(jī)構(gòu)百度法務(wù)部聯(lián)系方式
  • 石家莊網(wǎng)站建設(shè)模板服務(wù)臨沂seo建站
  • 公司名稱大全集最新三個(gè)字贛州seo唐三
  • wordpress過時(shí)了嗎手機(jī)百度seo快速排名
  • 杭州做網(wǎng)站的企業(yè)seo外鏈發(fā)布平臺(tái)有哪些
  • 網(wǎng)站建設(shè)成果成都官網(wǎng)seo服務(wù)
  • 手機(jī)網(wǎng)站制作方案微信群二維碼推廣平臺(tái)
  • 大型服裝網(wǎng)站開發(fā)代運(yùn)營(yíng)一般收費(fèi)
  • 網(wǎng)站建設(shè)規(guī)劃表福州百度網(wǎng)站排名優(yōu)化
  • 政府網(wǎng)站建設(shè)規(guī)范產(chǎn)品營(yíng)銷方案案例范文
  • 做零售出口的網(wǎng)站seo綜合查詢?cè)趺从玫?/a>