jenkins+tomcat自动化部署
https://www.cnblogs.com/zhangzhide/p/13982625.html
一、配置tomcat
tomcat版本:tomcat-9.0.39
vim /usr/local/tomcat-9.0.39/conf/tomcat-users.xml
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script,tomcat,admin-gui,admin-script"/>
</tomcat-users>
可选项,如果登陆失败则修改context.xml文件,注释掉下面的配置;
vim /usr/local/tomcat-9.0.39/webapps/host-manager/META-INF/context.xml
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
二、构建一个自由风格的软件项目(git地址配置不再赘述)
1、安装Deploy to container插件;(自动化部署tomcat war包所用插件,不适用于jar包);
2、在jenkins上添加tomcat凭证,就是在tomcat中配置的账户密码;
3、构建后操作配置
4、上面3点配置完成后点击构建,查看控制台日志
5、查看tomcat工作目录下查看是否有刚才的生成的war包;
三、构建一个maven项目
1、安装插件Maven Integration;
这地方有个小坑,就是在jenkins的插件管理器中安装Manve插件会大概率失败,因为有依赖没有被安装,所以更换了国内源也有问题,没有解决,会有此类报错;
如上图所示:要安装Manve要先安装Javadoc,在上图中的地址中会生成javadoc.jpi.tmp和maven-plugin.jpi.tmp的临时文件,在这个临时文件中会体现出一个关于hpi后缀的下载地址,所以解决方法就是去jenkins官网下载关于javadoc.hpi和maven的hpi文件;地址:https://plugins.jenkins.io/ui/search/
下载完成之后,jenkins的插件管理--->告警中将hgi文件导入安装即可;也不用重启jenkins即可生效;
2、构建一个maven项目配置
1)填写git代码地址并指定分支,这里不做赘述;
2)build,这里构建命令可以不用写mvn因为maven项目会默认加上mvn;
3)构建后操作
3、开始构建,并查看控制台是否有报错
四、构建一个流水线项目
Pipeline是一套运行在Jenkins上的工作流框架,实现单个任务难以完成的复杂流程编排和可视化工作;Pipeline是Groovy语言实现的,但是jenkins很友好的提供了生成代码的可视化工具;Pipeline支持两种语法:declarative(声明式)和Scripted Pipeline(脚本式)语法;
Pipeline有两种创建方法:
1)直接在Jenkins的Web UI中生成脚本
2)创建一个Jenkinsfile脚本放到项目源码库中
1、安装插件Pipeline插件
2、配置流水线项目语法
3、根据jenkins自带的工具生成代码,以上图中的hello world为蓝本添加;在流水线配置框最下面有一个流水线语法的按钮,这个就是自动生成工具;
1)拉取代码选择:checkout: Check out from version control
2)构建代码选择:sh: Shell Script
Shell Script: mvn clean package
3)发布代码选择:deploy: Deploy war/ear to a container
4、最终就拼装成了相对完整的流水线构建代码
pipeline {
agent any
stages {
stage('push Object') {
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '114e966f-ada2-4022-8d37-283076e95faa', url: 'http://gitlab.test.com/zhangzhide/web_demo.git']]])
}
}
stage('build Object') {
steps {
sh 'mvn clean package'
}
}
stage('publish Object') {
steps {
deploy adapters: [tomcat9(credentialsId: '5f5123cd-7ca5-468d-951a-4666ff0ab891', path: '', url: 'http://192.168.31.120:8080')], contextPath: null, war: 'target/*.war'
}
}
}
}
5、保存并开始构建,查看控制台构建过程
6、通过放入项目源码库中的Jenkinsfile脚本来构建流水线项目(这步是前面2到4的集合,功能相同,二选其一即可;)
1)将前面生成的Pipeline代码放入idea工具项目中,该文件名支持自定义,但是最好还是叫Jenkinsfile;因为jenkins的配置项中默认叫Jenkinsfile;
2)配置jenkins,并构建即可