创建Java项目
1 GitLab创建项目
2 推送代码到GitLab
本次实验我们以Zrlog来作为本次实验需要部署的java项目,ZrLog是使用 Java 开发的博客/CMS程序,具有简约,易用,组件化,内存占用低等特点,自带 Markdown 编辑器。这里我们使用Zrlog的源码作为java代码以作测试。
把Zrlog项目初始化为一个 git 仓库并推送到GitLab仓库(提示:在Git主机操作)
[root@git ~]# unzip zrlog-master.zip
[root@git ~]# cd zrlog-master
[root@git jeesns-master]# git init
[root@git jeesns-master]# git add .
[root@git jeesns-master]# git commit -m 'add java'
[root@git jeesns-master]# git remote add maven git@192.168.0.10:test/maven.git
[root@git jeesns-master]# git push -u maven master
3 Jenkins创建Item
接下来通过Jenkins拉取GitLab代码到本地进行打包。登录 Jenkins 主页面,点击“新建 Item”进入创建 Job 页面。
提示:如果没有Maven项目,则需要Jenkins安装Maven插件。
4 Jenkins安装Maven插件
我们要使用Jenkins+Maven对Java项目进行构建,Jenkins需要安装Maven Project Plugin,具体安装过程如下:
在Jenkins的Manage Jenkins(管理jenkins)→Manage Pulgins(管理插件)→可选插件 搜索maven并安装。
点击下方的安装 等待安装完成。
5 Jenkins结合Maven构建Java项目
安装完成后回到主页面点击新建Itme,即可看到 构建一个maven项目,输入任务名称后点击构建一个maven项目 点击确定。
在General(常规)复选框中我们勾选 Discard old builds(丢弃旧版本)
由于每次构建都会生成很多构建产物,如果频繁构建会占用很多的空间,我们可以通过这几个选项控制构建产物的保留。一般建议选择保留最近5-10的构建为适宜。
源码管理勾选 Git 进行拉去代码,并复制GitLab的仓库地址到 Repository URL 处。
Build(构建) 配置要执行的 maven 命令 。保存后我们解决提示路径问题。
回到主页面点击 Manage Jenkins(管理Jenkins)
Global Tool Configuration(全局工具配置)下拉找到 maven 配置项。
点击 新增 Maven,把Install automatically(自动安装maven)的勾选取消掉,应为我们是手动安装的maven,所以Jenkins不知道具体安装路径,如下图:
取消勾选后我们重新指定Maven的安装路径即可,如下图:
再次回到任务中检查 Build(构建)发现提示消失。
返回任务主页面,执行 Build Now(立即构建)验证。
通过控制台输出查看详细信息:
查看构建目录:target里面是打包好的项目war包:
[root@jenkins ~]# ls /var/lib/jenkins/workspace/maven-job/target/
zrlog-2.2.2-SNAPSHOT.war
7 Jenkins发布Java项目
a:回到Jenkins任务中增加构建步骤,如图:
复制下方代码到命令框,Jenkins将构建好的war包传到Tomcat站点目录(提前做好免密认证),如下图:
#备份站点目录
ssh root@192.168.0.12 'tar -zcf /opt/azlog-$(date +%Y-%m-%d-%H:%M).tar.gz /usr/local/tomcat/webapps/*'
#拷贝项目
scp /var/lib/jenkins/workspace/maven-job/target/zrlog-2.2.2-SNAPSHOT.war root@192.168.0.12:/usr/local/tomcat/webapps/
点击 保存 后执行 Build Now(立即构建)。
通过控制台输出查看构建结果。
出现SUCCESS表示构建成功。
tomcat验证war包是否已发布到站点目录:
[root@nginxn-server ~]# ls /usr/local/tomcat/webapps/
ROOT.war zrlog-2.2.2-SNAPSHOT zrlog-2.2.2-SNAPSHOT.war
评论区