持续部署、持续集成、持续交付
完成jenkins 部署与正常运行应具备以下条件
1. 代码仓库
2. jenkins部署服务器 (应当具有 jdk、maven、git)
3. 应用服务器
安装jenkins
1. 下载jenkins的repo 包,上传到linux
本次使用版本:
wget http://pkg.jenkins-ci.org/redhat-stable/jenkins-2.7.3-1.1.noarch.rpm
rpm -ivh jenkins-2.7.3-1.1.noarch.rpm或者yum install jenkinsxxxxrepo包.rpm
# ls /usr/lib/jenkins //在/usr/lib/jenkins目录下找到 jenkins.war包就是成功
2. 配置jdk
# vim /etc/init.d/jenkins 添加jdk安装路径
3. 配置jenkins端口
Jenkins默认情况是使用Jenkins用户启动的,但这个用户目前系统并没有赋予权限,这里我们将启动用户修改为root;另外Jenkins默认端口是8080,这个跟tomcat的默认端口冲突,修改端口为8015。
# vim /etc/sysconfig/jenkins //修改端口8015,将启动用户修改为root
# grep -n '^'[[a-Z] /etc/sysconfig/jenkins //查看配置内容方便
4. 启动Jenkins
# systemctl daemon-reload
# systemctl start jenkins.service //启动jenkins
# systemctl enable jenkins.service //设置jenkins开机启动
# systemctl stop jenkins.service //关闭jenkins
# systemctl status jenkins.service //查看jenkins的状态
如果登录后一片空白
5. 卸载jenkins
# rpm -e jenkins rpm卸载
# rpm -ql jenkins 检查是否卸载成功
# find / -iname jenkins | xargs -n 1000 rm -rf 彻底删除残留文件
jenkins 配置
1. 以防忘记密码
2. 配置相关路径
此处需要配置maven、jdk、git
3. 安装gitee码云 插件
安装构建后,执行shell脚本插件
4. 配置码云gitee
1. 前往 Jenkins -> Manage Jenkins -> Configure System -> Gitee 配置 -> Gitee 链接
2. 在 链接名 中输入 Gitee 或者你想要的名字
3. Gitee 域名 URL 中输入码云完整 URL地址: https://gitee.com (码云私有化客户输入部署的域名)
4. 证书令牌 中如还未配置码云 APIV5 私人令牌,点击 Add - > Jenkins
Domain 选择 全局凭据
Kind 选择 Gitee API 令牌
Scope 选择你需要的范围
Gitee API Token 输入你的码云私人令牌,获取地址:https://gitee.com/profile/personal_access_tokens
ID, Descripiton 中输入你想要的 ID 和描述即可。
5. Credentials 选择配置好的 Gitee APIV5 Token
6. 点击 Advanced ,可配置是否忽略 SSL 错误(适您的Jenkins环境是否支持),并可设置链接测超时时间(适您的网络环境而定)
7. 点击 Test Connection 测试链接是否成功,如失败请检查以上 3,5,6 步骤。
5. 创建构建任务
如果写成 install -DskipTests 就是跳过maven测试
clean install 就是先清理,后打包
(1). 有的时候,首次执行,会失败,提示没有权限
(2). 有的时候可能会因为使用本地jar包,所以导致maven编译失败
则应该在提交的代码中,指定所自定义的jar包位置
<dependency>
<groupId>com.qq</groupId>
<artifactId>connect</artifactId>
<version>2.9.0</version>
<scope>system</scope>
<systemPath>/var/lib/jenkins/workspace/mysqlExecute/src/main/webapp/lib/Sdk4J.jar</systemPath>
</dependency>
(3). 多个项目,依赖关系,maven打包思路理解
例如我们有两个项目在 gitee 上(bdc-zq、和bdc),bdc-zq 是war包,bdc是jar包。bdc-zq引用bdc。此时我们在linux上拿到两份源代码,我们先install bdc项目,那么bdc.jar 包就会存在于linux的本地仓库,在等到我们去install bdc-zq的时候,就会去仓库找到bdc.jar,将其引用到bdc-zq项目。
那么其实我们在idea上编辑时,如果外层父项目pom文件中配置的子项目<module>标签顺序不恰当的时侯,在linux上可能就会存在,a项目想引用b时,b项目还未完成打包,导致找不到b项目的jar 包的情况。那么两个解决方法:1.修改父项目pom文件中,子项目打包顺序,2.一个一个的子项目按照顺序单独打包,最后执行父项目的 install(不使用clean)。