jenkins+maven+svn搭建记录
一、背景描述
在没有jenkins之前,所有程序的部署都是手动的,包括程序包下载、打包、上传、运行。相对于手动部署,自动化部署能够减少90%的时间,只需要点击要构建的项目即可。CI/CD是现在也是未来的趋势,把更多的精力放在关键工作上。
二、搭建过程
1、环境使用centos7操作系统,默认自带java1.8.0_242版本,查看java版本:
java -version
2、下载jenkins的war包,版本为:2.235.3,运行
nohup java -jar jenkins.war --httpPort=80 &
3、首次登陆需要输入管理员密码,可在nohup文件中查看。
4、安装推荐的插件(很有可能安装不成功)
5、若插件未安装成功,首先修改配置文件/root/.jenkins/updates/default.json(运行war包后,系统会自动创建/root/.jenkins/文件夹)
sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
修改完之后就可以正常安装插件了,若要对插件进行更新需要修改以下文件:
把升级站点改为:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
6、安装必要的插件,若实在下载不了可在https://plugins.jenkins.io/
搜索下载,然后进行离线安装。
7、主机安装maven(若程序不需要maven,可不用安装),本机安装的是apache-maven-3.6.3
修改环境变量/etc/profile
export MAVEN_HOME=/usr/local/apache-maven-3.6.3
export PATH=$MAVEN_HOME/bin:$PATH
重新加载环境变量后,查看mvn是否安装成功
source /etc/profile
mvn -v
修改maven镜像下载地址
/usr/local/apache-maven-3.6.3/conf/settings.xml,要不然依赖包无法下载,程序无法完成打包
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
8、新建构建项目,本案例使用svn自动下载指定程序。
需要注意的是:
(1)构建执行shell时需要加上#!/bin/bash -il,否则无法指定命令。
(2)构建后的操作与Send files or execute commands over SSH after the build runs效果是一样的
(3)Transfer Set中的source是指jenkins服务端的项目目录下的文件,要将此文件传给Remote directory目录;当创建一个项目时会自动在/root/.jenkins/workspace/下创建此项目的文件夹,此处source为相对与新项目下的路径。
(4)Remove prefix 为删除source指定文件的前缀target,要不然传到要部署的服务器上文件名会带上target。
(5)Exec command执行命令时需要绝对路径,同时命令会在程序包传输完毕后执行。
(6)高级里的Label对应参数化构建过程中的选项参数。1对应正式环境,2对应测试环境。
(7)在打包的过程中可以看到程序所需要的的依赖包不一定全部能下载,需要与研发同事沟通,自建的依赖包需要自己手动安装,对于java8部分小版本和高版本本身没有javax.xml.bind包,需要自己安装或者在pom.xml中增加
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.2.11</version>
</dependency>
三、总结
jenkins各功能主要是通过插件的形式实现的,还有很多功能有待发掘,可查找官网教程学习https://www.jenkins.io/zh/doc/。