使用Jenkins构建项目
本教程主要演示在Linux系统安装jdk, maven, git, Jenkins, nexus 。并且将maven私服搭建起来,创建Jenkins项目,使用jenkins构建项目,将构建的jar包发布到私服nexus上。
Linux系统采用虚拟机的方式运行,IP地址192.168.168.101
一、 安装篇
1、 安装JDK
a、 下载jdk
wget http://download.oracle.com/otn-pub/java/jdk/8u172-b11/a58eab1ec242421181065cdc37240b08/jdk-8u161-linux-i586.tar.gz
b、 解压
mkdir /usr/local/java
cp jdk-8u161-linux-i586.tar.gz /usr/local/java
cd /usr/local/java
tar -zxvf jdk-8u161-linux-i586.tar.gz
c、 设置环境变量
vi /etc/profile
在文件末尾追加
export JAVA_HOME=/usr/local/java/jdk1.8xxxx
export PATH=$PATH:$JAVA_HOME/bin
d、刷新环境变量
source/etc/profile
e、验证安装是否成功
2、 安装maven
wget http://mirrors.shu.edu.cn/apache/maven/maven-3/3.5.3/binaries/apache-maven-3.5.3-bin.tar.gz
mkdir/usr/local/maven
cp apache-maven-3.5.3-bin.tar.gz/usr/local/maven
cd/usr/local/maven
tar -zxvf apache-maven-3.5.3-bin.tar.gz
vi /etc/profile
在文件末尾加上
exportMAVEN_HOME=/usr/local/maven/apache-maven-3.5.3
exportPATH=$PATH:$MAVEN_HOME/bin
保存退出
Source/etc/profile
测试
3、 git安装
yum install git
键入2次y后安装成功
4、 安装Tomcat
wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-9/v9.0.7/bin/apache-tomcat-9.0.7.tar.gz
mkdir/usr/local/tomcat9
cp apache-tomcat-9.0.7.tar.gz/usr/local/tomcat9
cd/usr/local/tomcat9
tar -zxvf apache-tomcat-9.0.7.tar.gz
启动Tomcat
cd /usr/local/tomcat9/apache-tomcat-9.0.7/bin
./startup.sh
在宿主机浏览器中输入 httpp://192.168.168.101:8080
发现页面无法显示
在宿主机上ping192.168.168.101
发现能ping 通
关掉虚拟机的防火墙后
安装成功
5、 安装nexus
下载
wget https://sonatype-download.global.ssl.fastly.net/repository/repositoryManager/oss/nexus-2.14.8-01-bundle.tar.gz
如果下载提示错误,请通过宿主机来进行下载
mkdir/usr/local/nexus
cp nexus-2.14.8-01-bundle.tar.gz /usr/local/nexus
cd /usr/local/nexus
tar -zxvf nexus-2.14.8-01-bundle.tar.gz
cd nexus-2.14.8-01
vi conf/nexus.properties
修改 ${bundleBasedir}为安装nexus的目录
cd bin
vi nexus
设置 RUN_AS_USER=root
启动nexus
./nexusstart
访问 http://192.168.168.101:8081/nexus
用admin/admin123可登录
6、安装Jenkins
从http://mirrors.jenkins.io/war-stable/latest/jenkins.war下载Jenkins
部署到Tomcat的webapp目录下
cp jenkins.war /usr/local/tomcat9/apache-tomcat-9.0.7/webapps
cd ../bin
./startup.sh
然后在宿主机浏览器中输入
http://192.168.168.101:8080/jenkins
cat /root/.jenkins/secrets/initialAdminPassword
将下面出现的字符复制到管理员密码处 点击继续
选择安装插件的方式, 两种方式都可以
创建管理员用户,建议自己手动输入管理员账户和密码, 本例创建的管理员为admin/admin
二、 使用eclipse创建maven工程,并添加到私服。
1、配置settings.xml 如下文件
2、创建maven 工程, 在pom.xml文件中添加如下内容
<distributionManagement>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>repo-snapshot</name> <url>http://192.168.168.101:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
<repository>
<id>nexus-releases</id>
<name>repo-release</name>
<url>http://192.168.168.101:8081/nexus/content/repositories/releases/</url>
</repository>
</distributionManagement>
注意: id 元素要和settings-test.xml中的 service 元素id 一致
2、 打包,并将打好的jar包上传到私服快照仓库
更换jre目录为jdk下的jre
再次运行 mvn clean install -Dmaven.test.skip=truedeploy 成功
在nexus服务器查看新打的包
发现已经上传到私服快照仓库,多打几次依然没有问题
3、 打正式环境的包
将pom.xml文件中修改
<groupId>com.biaoyue</groupId>
<artifactId>testdemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
改为
<groupId>com.biaoyue</groupId>
<artifactId>testdemo</artifactId>
<version>0.0.1-RELEASE</version>
<packaging>jar</packaging>
后继续打包
打包成功
再运行打包
发现打包失败
发现release仓库设置不允许重复打包
将其改为允许重复打包 Allow Redeploy
再次运行打包命令
再次打包成功。
三、 使用git提交代码到github
1、 在github上创建项目mytest
2、 本地安装git、设置用户名和邮箱、生成公钥、将公钥提交到github 等步骤略。
3、 创建目录 F:/git/mytest
执行 git init
4、 绑定远程仓库
5、将eclipse空间代码复制到mytest目录(这种方式比较low,主要是为了演示用命令行的方式操作git。 还可以在eclipse中绑定git地址的方式来提交代码,但eclipse里git插件用起来不太直观,所以我更偏向于用命令的方式, 萝卜白菜各有所爱吧。望各位看官非喜勿喷。)
5、 提交代码
git add .
git commit -m “first commit”
6、向远程仓库同步代码
第一次向远程仓库提交代码用 git -u origin master , 以后就可以直接用 git push提交。
到远程仓库查看代码已经提交上来了。
四、 在Jenkins中添加project, 实现从git下载代码,打包推送到私服仓库。
1、 创建自由风格的项目,填写项目名称、描述、设置日志保存策略。
2、 关于GIT插件
因为有可能每个人安装的过程遇到的问题不一样,所以在安装git等插件有问题的时候请自行找度娘解决。我这里在安装默认插件的时候发现GIT安装不上,于是就从安装插件里安装成功了。
3、 生成ssh key,并提及到github.
这一步的目的是让安装Jenkins的主机能在github上面去下代码。
如果安装Jenkins的机器中没有生成ssh key 的可以在安装Jenkins的主机上执行ssh-keygen -t rsa 命令生成公钥。
三个回车后 公钥就生成好了, 目录是 /root/.ssh
复制id_rsa.pub 文件中的内容。 添加到github中, 下图中的 Linux_101就是行加的sshkey
注意,另外的一种方式是 在Jenkins中配置github的用户名和密码。 所谓条条大路通罗马,看各自的喜欢吧。
4、 在jenkins中设置源码下载地址
因为设置了sshkey 所以 credentials 这个地方就不用设置了,选择none即可。
Branch Specifier (blank for 'any') 默认是master,可根据实际情况选择分支,比如开发环境可以用dev, 生产环境用release分支, andso on ….
5、 设置构建环境
添加构建步骤,选择invoke top-maven targets
添加构建命令, clean install -Dmaven.test.skip deploy
6、保存后,到项目中选择mytest, 构建
发现构建失败,原因是没有设置settings.xml
我们将settings-test.xml内容复制到Jenkins主机/usr/local/maven/apache-maven-3.5.3/conf, 将此目录中原来的settings.xml重命名为settings.default.xml, 然后将settings-test.xml 命名为settings.xml , 将<localRepository>f:/repositorys/</localRepository>修改为 <localRepository>/home/repositorys/</localRepository>
创建 /home/repositorys 目录。
再使用Jenkins重新构建
构建成功,打包上传到私服也成功。
注意:使用Jenkins构建项目的配置方式有多种,本文档采用了一种比较简单方便的方式来介绍。