tomcat部署jenkins項(xiàng)目的實(shí)現(xiàn)示例
jenkins簡介
? Jenkins自動(dòng)化部署可以解決集成、測(cè)試、部署等重復(fù)性的工作,工具集成的效率明顯高于人工操作;并且持續(xù)集成可以更早的獲取代碼變更的信息,從而更早的進(jìn)入測(cè)試階段,更早的發(fā)現(xiàn)問題,這樣解決問題的成本就會(huì)顯著下降:持續(xù)集成縮短了從開發(fā)、集成、測(cè)試、部署各個(gè)環(huán)節(jié)的時(shí)間,從而也就縮短了中間出現(xiàn)的等待時(shí)間;持續(xù)集成也意味著開發(fā)、集成、測(cè)試、部署得以持續(xù)。
Jenkins的主要特點(diǎn)和功能:
- 自動(dòng)化構(gòu)建:Jenkins可以從版本控制系統(tǒng)(如Git、SVN等)中獲取源代碼,并根據(jù)預(yù)定義的構(gòu)建腳本進(jìn)行自動(dòng)化構(gòu)建。它支持各種構(gòu)建工具和構(gòu)建環(huán)境,如Maven、Gradle、Ant等。
- 持續(xù)集成:Jenkins可以在代碼提交到版本控制系統(tǒng)后自動(dòng)觸發(fā)構(gòu)建過程,進(jìn)行代碼編譯、單元測(cè)試、集成測(cè)試等,并生成構(gòu)建報(bào)告和測(cè)試報(bào)告。它可以與各種測(cè)試框架和工具集成,如JUnit、TestNG、Selenium等。
- 持續(xù)交付和部署:Jenkins可以將構(gòu)建好的軟件包自動(dòng)部署到目標(biāo)環(huán)境中,如開發(fā)、測(cè)試、生產(chǎn)環(huán)境等。它支持各種部署方式和工具,如Shell腳本、Docker、Kubernetes等。
- 可擴(kuò)展性:Jenkins提供了豐富的插件和擴(kuò)展機(jī)制,可以滿足不同團(tuán)隊(duì)和項(xiàng)目的需求。開發(fā)人員可以編寫自定義插件,或者使用已有的插件來擴(kuò)展Jenkins的功能。
- 可視化界面:Jenkins提供了直觀的Web界面,可以方便地查看和管理構(gòu)建、測(cè)試和部署的狀態(tài)和結(jié)果。它還提供了豐富的報(bào)表和圖表,幫助團(tuán)隊(duì)了解項(xiàng)目的健康狀況和性能指標(biāo)。
環(huán)境準(zhǔn)備:
部署jenkins前先部署tomcat,tomcat部署方法請(qǐng)參考:tomcat
jenkins部署
下載jenkins軟件包
下載地址:Jenkins download and deployment
[root@localhost ~]# wget https://get.jenkins.io/war-stable/2.414.2/jenkins.war ... Length: 89532729 (85M) [application/java-archive] Saving to: ‘jenkins.war' jenkins.war 100%[===========================================================>] 85.38M 299KB/s in 3m 15s 2023-10-11 14:07:07 (448 KB/s) - ‘jenkins.war' saved [89532729/89532729] [root@localhost ~]# [root@localhost ~]# ls anaconda-ks.cfg apache-tomcat-9.0.65.tar.gz jenkins.war [root@localhost ~]#
將jenkins.war文件拷貝至webapps目錄下
[root@localhost ~]# cd /usr/local/tomcat/webapps/ [root@localhost webapps]# [root@localhost webapps]# ls docs examples host-manager manager ROOT [root@localhost webapps]# [root@localhost webapps]# cp /root/jenkins.war . [root@localhost webapps]# ls docs examples host-manager jenkins.war manager ROOT [root@localhost webapps]#
編輯server.xml配置文件
開啟AJP協(xié)議,用于tomcat跟apache的效率,注意如果有多個(gè)tomcat,則改一下端口號(hào),比如8009變8010
[root@localhost ~]# cd /usr/local/tomcat/conf/ [root@localhost conf]# ls Catalina catalina.properties jaspic-providers.xml logging.properties tomcat-users.xml web.xml catalina.policy context.xml jaspic-providers.xsd server.xml tomcat-users.xsd [root@localhost conf]# [root@localhost conf]# vim server.xml ... <!-- Define an AJP 1.3 Connector on port 8009 --> <Connector protocol="AJP/1.3" address="::1" port="8009" redirectPort="8443" /> ... "server.xml" 168L, 7563C written [root@localhost conf]#
重啟服務(wù),jenkins.war包會(huì)自動(dòng)解壓縮
[root@localhost webapps]# cd .. [root@localhost tomcat]# ./bin/catalina.sh stop Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Using CATALINA_OPTS: NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED [root@localhost tomcat]# [root@localhost tomcat]# [root@localhost tomcat]# ./bin/catalina.sh start Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Using CATALINA_OPTS: Tomcat started. [root@localhost tomcat]# [root@localhost tomcat]# ss -anlt State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:* LISTEN 0 100 [::1]:8009 [::]:* LISTEN 0 100 *:8080 *:* LISTEN 0 128 [::]:22 [::]:* [root@localhost tomcat]# [root@localhost tomcat]# cd webapps/ [root@localhost webapps]# ls docs host-manager jenkins.war ROOT examples jenkins manager [root@localhost webapps]#
訪問網(wǎng)頁解鎖 Jenkins
[root@localhost webapps]# cat /root/.jenkins/secrets/initialAdminPassword d4871675ae814d8ea501b87f853b94f6 [root@localhost webapps]#
選擇安裝推薦的插件
等待安裝完成
創(chuàng)建管理員用戶
用戶名,密碼和郵箱自定義
登錄成功
使用jenkins部署項(xiàng)目
安裝拉取項(xiàng)目和打包項(xiàng)目的工具
[root@localhost ~]# yum -y install git maven
手動(dòng)拉取項(xiàng)目測(cè)試
[root@localhost ~]# git clone https://gitee.com/forgotten/tomcat-java-demo.git Cloning into 'tomcat-java-demo'... remote: Enumerating objects: 558, done. remote: Total 558 (delta 0), reused 0 (delta 0), pack-reused 558 Receiving objects: 100% (558/558), 5.08 MiB | 536.00 KiB/s, done. Resolving deltas: 100% (217/217), done. [root@localhost ~]# ls anaconda-ks.cfg apache-tomcat-9.0.65.tar.gz jenkins.war tomcat-java-demo [root@localhost ~]#
將java版本更換為17
[root@localhost ~]# alternatives --config java There are 2 programs which provide 'java'. Selection Command ----------------------------------------------- 1 java-17-openjdk.x86_64 (/usr/lib/jvm/java-17-openjdk-17.0.1.0.12-2.el8_5.x86_64/bin/java) *+ 2 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-2.el8_5.x86_64/jre/bin/java) Enter to keep the current selection[+], or type selection number: 1 [root@localhost ~]#
手動(dòng)打包測(cè)試
[root@localhost tomcat-java-demo]# mvn clean package ... [INFO] Packaging webapp [INFO] Assembling webapp [ly-simple-tomcat] in [/root/tomcat-java-demo/target/ly-simple-tomcat-0.0.1-SNAPSHOT] ... [root@localhost tomcat-java-demo]# [root@localhost tomcat-java-demo]# cd target/ [root@localhost target]# ls classes generated-sources ly-simple-tomcat-0.0.1-SNAPSHOT ly-simple-tomcat-0.0.1-SNAPSHOT.war maven-archiver maven-status [root@localhost target]#
創(chuàng)建一個(gè)流水線任務(wù)
編寫一個(gè)hello world 流水線腳本
點(diǎn)擊test,然后點(diǎn)擊立即構(gòu)建
構(gòu)建成功
生成拉取腳本,編寫流水線腳本
倉庫URL下面填寫你要拉取的項(xiàng)目地址
生成拉取腳本后,編寫流水線腳本
點(diǎn)擊立即構(gòu)建
拉取成功
查看流水線腳本拉取的項(xiàng)目
[root@localhost ~]# ls -a . anaconda-ks.cfg .bash_history .bash_profile .cshrc .java jenkins.war .tcshrc .wget-hsts .. apache-tomcat-9.0.65.tar.gz .bash_logout .bashrc .groovy .jenkins .m2 .viminfo [root@localhost ~]# [root@localhost ~]# cd .jenkins/ [root@localhost .jenkins]# [root@localhost .jenkins]# ls ... jenkins.install.UpgradeWizard.state plugins users jenkins.model.JenkinsLocationConfiguration.xml queue.xml workspace jenkins.telemetry.Correlator.xml queue.xml.bak [root@localhost .jenkins]# [root@localhost .jenkins]# cd workspace/test/ [root@localhost test]# ls db deploy.yaml Dockerfile jenkinsfile LICENSE pom.xml README.md src [root@localhost test]#
安裝maven打包插件
選擇需要安裝的插件
點(diǎn)擊安裝
安裝完成
手動(dòng)打包成功后編寫流水線腳本
流水線腳本代碼
pipeline { agent any stages { stage('pull code and package') { steps { git 'https://gitee.com/forgotten/tomcat-java-demo' sh 'mvn clean package -Dmaven.test.skip=true' } } stage("deploy"){ steps { sh 'cp /root/tomcat-java-demo/target/ly-simple-tomcat-0.0.1-SNAPSHOT.war /usr/local/tomcat/webapps' sh '/usr/local/tomcat/bin/catalina.sh stop && /usr/local/tomcat/bin/catalina.sh start' } } } }
構(gòu)建成功
流水線構(gòu)建完成后webapps目錄下可以看到拷貝和解壓的ly-simple-tomcat-0.0.1-SNAPSHOT.war文件,服務(wù)重啟后會(huì)自動(dòng)解壓war類型的文件
[root@localhost ~]# cd /usr/local/tomcat/webapps/ [root@localhost webapps]# [root@localhost webapps]# ls docs host-manager jenkins.war ly-simple-tomcat-0.0.1-SNAPSHOT.war ROOT examples jenkins ly-simple-tomcat-0.0.1-SNAPSHOT manager test [root@localhost webapps]#
訪問網(wǎng)頁,在地址欄端口號(hào)后面加上 /ly-simple-tomcat-0.0.1-SNAPSHOT/
到此這篇關(guān)于tomcat部署jenkins項(xiàng)目的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)tomcat部署jenkins 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何在同一局域網(wǎng)下通過IP地址訪問本機(jī)Tomcat項(xiàng)目
這篇文章主要介紹了如何在同一局域網(wǎng)下通過IP地址訪問本機(jī)Tomcat項(xiàng)目問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06如何修改tomcat默認(rèn)端口號(hào)8080的方法
本篇文章主要介紹了如何修改tomcat默認(rèn)端口號(hào)8080的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03tomcat轉(zhuǎn)東方通的實(shí)現(xiàn)步驟
將Tomcat集成到東方通中間件中,通常是為了實(shí)現(xiàn)更復(fù)雜的業(yè)務(wù)邏輯處理或者為了提高系統(tǒng)在高并發(fā)環(huán)境下的穩(wěn)定性和安全性,本文主要介紹了tomcat轉(zhuǎn)東方通的實(shí)現(xiàn)步驟,感興趣的可以了解一下2025-03-03Web項(xiàng)目打成war包部署到tomcat時(shí)報(bào)MySQL Access denied for user ''''root'
這篇文章主要介紹了Web項(xiàng)目打成war包部署到tomcat時(shí)報(bào)MySQL Access denied for user 'root'@'localhost' (using password: YES)錯(cuò)誤解決方案(推),需要的朋友可以參考下2018-01-01阿里云服務(wù)器安裝配置tomcat 添加外網(wǎng)訪問端口的教程
這篇文章主要介紹了阿里云服務(wù)器安裝配置tomcat 添加外網(wǎng)訪問端口,需要的朋友可以參考下2019-11-11詳述 tomcat 中的 server.xml 配置文件示例
本文將通過實(shí)例,介紹server.xml中各個(gè)組件的配置,并詳細(xì)說明 Tomcat 各個(gè)核心組件的作用以及各個(gè)組件之間的相互關(guān)系。對(duì)tomcat server.xml 配置文件相關(guān)知識(shí)感興趣的朋友一起看看吧2017-08-08web安全—tomcat禁用WebDAV或者禁止不需要的 HTTP 方法
現(xiàn)在主流的WEB服務(wù)器一般都支持WebDAV,使用WebDAV的方便性,呵呵,就不用多說了吧,用過VS.NET開發(fā)ASP.Net應(yīng)用的朋友就應(yīng)該 知道,新建/修改WEB項(xiàng)目,其實(shí)就是通過WebDAV+FrontPage擴(kuò)展做到的,下面我就較詳細(xì)的介紹一下2017-03-03