您的位置:首页 > 运维架构 > Linux

linux(centos)下使用jenkins + maven + git码云(或github) 实现自动化构建项目

2017-08-10 12:07 603 查看

1.下载jenkins 官网下载地址,自己选取对应系统 https://jenkins.io/download/

下载rpm或者直接下载war包 https://pkg.jenkins.io/redhat/jenkins-2.9-1.1.noarch.rpm

系统环境要求: jdk, tomcat, git, maven (没有就安装先)


rpm -ivh jenkins-2.9-1.1.noarch.rpm 我的安装到 /usr/lib/jenkins目录

Jenkins主目录是用户目录下的.jenkins目录  /root/.jenkins


复制文件夹内的jenkins.war到tomcat目录下的webapps目录下 并启动tomcat (./startup.sh)

进入: cd ~/.jenkins/

目录介绍:
jobs: 项目配置目录(新建的job,即一个个项目 的配置存放在这里)
logs: 日志目录
workspaces: 默认的工作空间(每个项目会存放在这里)
users: 创建的用户目录
secrets: 初始的设置(包括初始化的密码, 在创建了用户以后会自动删除里面的初始化密码文件)


tomcat启动以后 访问网页 http://127.0.0.1/jenkins 提示输入初始化密码, 密码在secrets目录下的initialAdminPassword文件内

进入后先创建一个用户(以后就用这个用户登录), 然后提示下载插件(可以下载推荐的也可以自定义)

按照提示新建一个项目 如图:这里测试从码云获取项目,so选择第一个, 设置完后 保存

(如果是maven项目 需要下载个maven插件-> Maven Integration plugin 在设置里下载 安装重启 下面介绍)



填写内容:
项目名称: 最好和真正的项目名相同
描述: 随意

源码管理: 选择 git (当遇到 401, 没权限, 读取远程key失败请看下面错误解决)
构建触发器: 设置什么时候触发构建功能(可以用脚本,或者有人提交代码到码云时候构建,或者定时构建都可以)

(jenkins有各种提示, 都介绍的很详细了)






如果项目是私有的项目(如码云中的), 则需要设置用户名密码–在 Credentials 中配置 Add 一个





点击左侧 立即构建

到主面板查看项目构建情况: 红色代表失败, 蓝色表示成功

可以再面板的 系统管理/系统设置 中修改设置

系统设置:
1.点击高级设置: 可以修改 工作空间根目录,构建记录根目录
2.可以修改时间格式
3.可以修改ssh端口,管理员邮件地址,Jenkins URL等等
Global Tool Configuration:
1.设置maven路径
2.设置jdk路径
3.设置git文件路径


对于maven项目 配置如图一,可自行更改



下图是点击构建以后打印的日志信息(正在下载依赖) (but有个问题 下载的jar包并没有按照我maven中配置的仓库地址,而是下载到了.jenkins目录下)



发布war到tomcat: 由于这里编译就和自己电脑打包项目一样,会把war包放在target目录下, 我们需要一个插件把其发送到tomcat的webapps中

(下载插件 Deploy to container Plugin)

安装插件以后进入项目的配置界面 设置”构建后操作”,里面就会多一个 “Deploy war/ear to a container” 选项

配置:
WAR/EAR files: target/*.war  (war包的相对路径,相对工作空间)
Context path: MeetCode (发布到tomcat的路径,这里我用项目名,到时候访问就用http://127.0.0.1:80/MeetCode)

Containers: 配置一个tomcat容器(我用的tomcat8,但是我的版本没有 只能用7x)
Manager user name: (tomcat用户名: 进入tomcat/conf/tomcat-users.xml设置)
Manager password: 密码
Tomcat URL: http://127.0.0.1:80 (设置远程tomcat访问路径)


设置完毕 保存 构建 可看日志观察构建过程 (进入tomcat/webapps下 发现war包正在传入), success之后访问网页可用

其实也可以不发送war包, 可以在Post Steps中配置maven运行命令*

要求: 1. 在pom文件中加入tomcat插件
2. 如下图配置,则构建最后会直接通过maven运行启动项目

其他问题: 运行其实依然处于正在构建状态(可以自己查看项目构建状态),
所以需要在项目配置中勾选"丢弃旧的构建",保持构建的最大个数填写"1",(也可以设置构建最大时间);




设置邮件消息

1.进入 系统管理 / 系统设置 / 邮件通知


设置选项: (这里用qq邮箱测试)
SMTP服务器: smtp.qq.com
用户默认邮件后缀: @qq.com
使用SMTP认证: true
用户名: (作为发件箱的qq邮箱,可以带或不带后缀)
密码: (一般是邮箱密码,qq邮箱特殊,需要进入qq邮箱/设置/账户设置, 发送短信生成一个smtp密码)
使用SSL协议: false
SMTP端口: 587
Reply-To Address: 我没写
字符集: UTF-8

测试: 写另一个邮箱地址进行测试
注意: 如果失败, 提示com.sun.mail.smtp.SMTPSendFailedException: 501 mail from address must be sam
需要设置    系统管理员邮件地址, 在本页面上面,必须与发件箱一致


错误解决:

问题: 设置git地址时候 遇到401错误 或者 fatal: Could not read from remote repository

原因: 本地git没有配置SSH公钥

这个配置在github中在右上角 Settings/SSH keys and GPG keys 中

在码云中在右上角 修改资料/SSH公钥 中(二者命令不同)

github生成公钥 命令:
git config --global user.name "XXXXX"
git config --global user.email "XXXXXXX@gmail.com"
1.查看是否已经有了ssh密钥:cd ~/.ssh
如果没有密钥则不会有此文件夹,有则备份删除
2.生存密钥:
ssh-keygen -t rsa -C "XXXXXXX@gmail.com"
按3个回车,密码为空。
此时生成两个文件:id_rsa和id_rsa.pub 公钥在id_rsa.pub中,查看并复制粘贴到上面github的配公钥的地方,添加一个公钥
并且在本地也添加公钥
ssh-add id_rsa.pub

码云生成公钥 命令: 见 http://git.mydoc.io/?t=154712
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  github centos git