1. jenkins简介
用于持续自动的构建、测试软件项目,监控外部任务的运行,Java语言编写
意义:任一环节都是自动完成,有利于软件发展趋势,节省开发测试时间
CI/CD:持续集成、持续交付。
持续集成定义:一个自动化构建的过程
2.jenkins组件
一个自动构建的过程,包括自动编译、分发、部署测试。构建工具:maven/ant/gradle
一个代码存储库,如svn/git,一个jenkins持续集成的服务器
3.hudson与jenkins之间关系
hudson是jenkins的较早名称和版本,发行后,项目名称成hudson更改为jenkins。
Jenkins的前身是hudson(sun开发),2010年从hudson分支出来,分支出来后继续走开源道路,而Hudson可能会用于商业用途,二者都在继续开发中。
4.jenkisn安装
Jdk+jenkins,源码安装或yum安装
jenkins多实例:添加多个node节点,添加jenkins slave。
Jenkins集群部署:系统管理--管理节点--新建节点,一般ssh添加主机认证。
从节点:有jdk就行(项目构建时,勾选并行构建,即可从从节点构建任务)
并发构建好处:可以同时构建多个任务。
Jenkins整合ansible批量自动化部署:整合,execute shell,将多台命令改成ansible批量化操作,即可实现批量化自动化部署。
5.mvn命令
mvn -v //查看maven版本 mvn compile //编译,需要pom.xml文件
mvn test //测试,并生成测试报告 mvn clean //清空
mvn package //打包,直接达成jar包 mvn isntall //安装
仓库:设置本地工厂路径,存放本地jar
6.插件(重要概念)
make工具:编译工具,生成可用文件。负责组织构建的过程、指挥编译器如何编译,连接器如何连接,最后生成一个可用的文件。(Linux make /windows nmake)
ant工具:编译工具。解决make编译比较复杂工具使用不灵活、语法难理解问题。
maven工具:ant改进,编译。可以条用不通编译器连接器,通过插件实现。
POM模型,高级项目管理文件,pom.xml文件,maven中必须有pom.xml文件
(可以控制编译、控制连接,可以生成各种报告,可以进行代码测试)
Eclipse:开源Java平台,代码开发工具
Jenkins平台:工具平台
Maven、ant和jenkins有什么区别:
maven和ant是构建工具,而jenkins是持续集成工具
7.插件安装
系统管理--管理插件--可选插件(可升级或降级),中搜索需要安装的插件安装即可
插件可以自己下载.hpi格式,可设置上网代理服务器(正向代理服务器)(也可以手动上传安装:系统管理-->管理插件-->高级-->然后手动上传安装)
8.邮件设置
安装插件Email Extension Plugin、Email Extension Template Plugin,然后配置
(设置邮件发送者;添加系统管理员邮件;设置发送邮件的SMTP、邮箱后缀,发送html、接收着或抄送者;设置邮件标题;设置邮件内容;工程项目邮件设置、选择trigger阈值;构建邮件验证)
邮件设置:系统管理员配置,系统管理--jenkisn location--邮件配置
工程设置:增加构建后的操作--邮件配置,设置trigger阈值
9.网站自动化部署实例
Maven安装:下载、解压、使用(bin下有mvn命令)
Jenkisn配置:系统管理--系统设置--maven配置,配置jdk配置--保存
测试集成网站构建:新建任务-->选择任务类型(名称自定义,一般选择构建maven项目)-->项目名称、描述、源码管理(选择代码位置svn/git)、pom文件-->
保存/root/.jenkins(构建源代码在该位置)
源码管理:src源码,pom.xml文件(这个开发负责写),可以设置自动构建(定时任务+自动构建)。程序包位置:/root/.jenkins/workspace/www.fsedu.net/target/edu.war
(jenkins源码自动编译打包,存在war包位置)
Jar -xvf edu.war //解压war包,得到真正的网站 !tail //调用上一个tail开头的命令
自动化部署:
Jenkins脚本自动化:点击工程名称--配置--构建后操作--设置jenkins编译打包完成后、war包存放位置//选择archive the artifacts,输入用于存档的文件**/target/*.war--应用--保存
自动部署脚本:在远程机器执行
得到tomcat pid:ps -ef|grep tomcat|grep -v grep|awk ‘{print $2}’
Post steps:execute shell,写入命令(生成私钥),yes|cp 命令 //强制覆盖
标签:集成,插件,--,持续,构建,mvn,jenkins,邮件 From: https://www.cnblogs.com/huchao12/p/17554943.html