紧接着上一篇博客继续jenkins的学习
Jenkins介绍和安装配置
Jenkins中自动构建项目的类型有很多,常用的有以下三种:
流水线类型最推荐使用,灵活度最高
自由风格项目来完成项目的集成过程:
拉取代码->编译->打包->部署
打开之前的项目
添加shell命令
开始编译构建
编译构建成功
在jenkens 工作目录里的项目目录也有了构建成功的target目录 里面有war包
把项目部署到远程的Tomcat里面
需要在jenkins上安装 Deploy to container
插件
Jenkins本身无法实现远程部署到Tomcat的功能,需要安装Deploy to container插件实现
安装完毕之后
回到项目的配置里在最下面找到构建后操作
选择Deploy war/ear to a container
找到war包 在target目录下 .*代表所有
添加容器 选择tomcat 8.x
接下来又需要添加凭据
使用账号密码凭据类型
我将代码里面的主页面的字修改了
将代码push到仓库
仓库可看见已经改变
然后重新构建项目
安装Maven Integration
插件
构建maven项目
源码管理还是和之前一样
只需要填clean package
构建后操作还是选择部署到一个容器
构建项目之后 打开浏览器 和之前一样
点进去之后显示项目
Pipeline,简单来说,就是一套运行在 Jenkins 上的工作流框架,将原来独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排和可视化的工作
使用Pipeline有什么好处:
如何创建 Jenkins Pipeline呢
安装Pipeline插件
这里是声明式的写法
pipeline {
agent any
stages {
stage('Hello') {
steps {
echo 'Hello World'
}
}
}
}
我们就可以模仿编写一个基础的声明式语法
pipeline {
agent any
stages {
stage('Pull code') {
steps {
echo 'pull code'
}
}
stage('build project') {
steps {
echo 'build project'
}
}
stage('publish project') {
steps {
echo 'publish project'
}
}
}
}
这是脚本式的语法
node {
def mvnHome
stage('pull code') { // for display purposes
echo 'pull code'
}
stage('Build project') {
echo 'Build project'
}
stage('publish project') {
echo 'publish project'
}
}
checkout:从版本控制拉取代码
这里和之前一样 选择完毕之后 就可以产生脚本代码
将代码复制到我们任务配置里
pipeline {
agent any
stages {
stage('pull code') {
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: '41580d48-d4c3-4116-9a71-4d4d777c5753', url: '[email protected]:maomao_group/java_demo.git']]])
}
}
}
}
pipeline {
agent any
stages {
stage('pull code') {
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: '41580d48-d4c3-4116-9a71-4d4d777c5753', url: '[email protected]:maomao_group/java_demo.git']]])
}
}
stage('build project') {
steps {
sh 'mvn clean package'
}
}
}
}
pipeline {
agent any
stages {
stage('pull code') {
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: '41580d48-d4c3-4116-9a71-4d4d777c5753', url: '[email protected]:maomao_group/java_demo.git']]])
}
}
stage('build project') {
steps {
sh 'mvn clean package'
}
}
stage('publish project') {
steps {
deploy adapters: [tomcat8(credentialsId: '2d2bfcb9-0d59-4415-b482-f624db6ce982', path: '', url: 'http://47.109.20.143:8080')], contextPath: null, war: 'target/*.war'
}
}
}
}
刚才我们都是直接在Jenkins的UI界面编写Pipeline代码,这样不方便脚本维护,建议把Pipeline脚本放在项目中(一起进行版本控制)
在项目根目录建立Jenkinsfile文件,把内容复制到该文件中