tomcat+jenkins
Jenkins是一个开源的持续集成(CI)工具,用于自动化构建、测试和部署软件项目。它提供了一个易于使用的Web界面,可以配置和管理各种CI任务,并提供了丰富的插件生态系统,可以扩展其功能。
Jenkins的特点包括:
- 自动化构建:Jenkins可以通过配置构建任务,自动从版本控制系统(如Git、SVN等)拉取代码,并进行编译、打包等构建操作。它支持各种编程语言和构建工具,如Java、Maven、Gradle等。
- 持续集成:Jenkins可以根据代码提交触发构建任务,实现持续集成的流程。它可以检测代码变更,并自动构建、运行测试和生成报告,帮助团队及时发现和解决问题。
- 多环境部署:Jenkins支持将构建结果部署到不同的环境中,如开发、测试、生产等。它可以通过插件实现自动化部署到各种目标环境,如应用服务器、容器等。
- 可扩展性:Jenkins拥有丰富的插件生态系统,可以通过安装插件来扩展其功能。插件可以提供额外的构建工具、测试框架、集成第三方工具等,满足特定项目的需求。
- 可视化界面:Jenkins提供了一个易于使用的Web界面,可以方便地配置和管理构建任务。它还提供了丰富的报告和图表,用于展示构建结果和测试覆盖率等信息。
安装jenkins
安装tomcat请查看我的上一个博客 博客地址
在jenkins官网上下载jenkins的war包
[root@localhost ~]# ls
anaconda-ks.cfg apache-tomcat-9.0.80.tar.gz index.jsp jenkins.war
[root@localhost ~]# java -jar jenkins.war
//部署jenkins
[root@localhost ~]# cd /usr/local/tomcat/webapps/
[root@localhost webapps]# ls
docs examples host-manager manager ROOT test
[root@localhost webapps]# mv * /opt/
[root@localhost webapps]# ls
[root@localhost webapps]# cp /root/jenkins.war /usr/local/tomcat/webapps/
//会自动生成一个jenkins的文件夹
[root@localhost webapps]# ls
jenkins jenkins.war
//然后重启服务
[root@localhost ~]# /usr/local/tomcat/bin/catalina.sh stop
[root@localhost ~]# /usr/local/tomcat/bin/catalina.sh start
登录密码在/root/.jenkins/secrets/initialAdminPassword中
[root@localhost ~]# cat /root/.jenkins/secrets/initialAdminPassword
e5a98a7d88a84157bad389dd86dd1cd9
[root@localhost ~]# cd .jenkins/
[root@localhost .jenkins]# ls
config.xml nodes
hudson.model.UpdateCenter.xml plugins
hudson.plugins.git.GitTool.xml queue.xml.bak
identity.key.enc secret.key
jenkins.install.InstallUtil.lastExecVersion secret.key.not-so-secret
jenkins.install.UpgradeWizard.state secrets
jenkins.model.JenkinsLocationConfiguration.xml updates
jenkins.telemetry.Correlator.xml userContent
jobs users
nodeMonitors.xml war
新建一个流水线任务
输出一个hello world来测试一下
拉取测试代码
//安装git命令
[root@localhost ~]# dnf -y install git
//测试拉取项目
[root@localhost ~]# git clone https://gitee.com/forgotten/tomcat-java-demo.git
[root@localhost ~]# ls
anaconda-ks.cfg apache-tomcat-9.0.80.tar.gz index.jsp jenkins.war tomcat-java-demo
//可以拉取代码
//尝试打包,首先先安装
[root@localhost ~]# yum -y install maven //这样安装会安装一个老版本的java会和现在用的java版本进行冲突,导致tomcat服务失效
//选择java版本
[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
//这样tomcat就可以运行了
//手动打包
[root@localhost tomcat-java-demo]# mvn clean package
//打包的位置在/root/tomcat-java-demo/target/
[root@localhost tomcat-java-demo]# cd /root/tomcat-java-demo/target/
[root@localhost target]# ls
classes ly-simple-tomcat-0.0.1-SNAPSHOT maven-archiver
generated-sources ly-simple-tomcat-0.0.1-SNAPSHOT.war maven-status
手动打包可以成功之后就可以写入流水线
//流水线脚本:
pipeline {
agent any
stages {
stage("pull code"){
steps {
git 'https://gitee.com/forgotten/tomcat-java-demo.git'
}
}
stage("make pkg"){
steps {
sh """
mvn clean package -Dmaven.test.skip=true
"""
}
}
stage("publish"){
steps {
sh """
cp /root/tomcat-java-demo/target/ly-simple-tomcat-0.0.1-SNAPSHOT.war /usr/local/tomcat/webapps/
/usr/local/tomcat/bin/catalina.sh stop && /usr/local/tomcat/bin/catalina.sh start
"""
}
}
}
}
流水线跑完之后进入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
//然后访问
http://192.168.37.120:8081/ly-simple-tomcat-0.0.1-SNAPSHOT/