使用开源软件Jenkins一键发布项目到服务器

简介: 搭建步骤其实很简单,先去官网(https://jenkins.io/)下载一个war包。然后上传linux服务器,或者直接用wget命令下载。下载好后可以直接用java -jar jenkins.war 运行。如果安装了tomcat等web服务器的话就放入对应的路径运行服务器即可。tomcat在webapps下。不推荐使用tomcat,因为war包里本身就包括了一个内置的服务器。如果想后台运行可以用nohup命令。nohup java -jar jenkins.war & ,指定端口加上 --httpPort=xxxx 。

首先Jenkins是什么呢?就是一种持续集成项目的一款开源软件,是用java写的。部署简单,中文界面,可一键从git clone、pull。也可以打包发布,功能还是很多的,比如可以自动安装jdk、git、maven等等。在项目构建前后执行相关操作,比如shell脚本,也可以监控项目构建健康状态。使用Jenkins的话不管是运维、开发、测试都可以把push完的代码一键发布。


搭建步骤其实很简单,先去官网https://jenkins.io/)下载一个war包。然后上传linux服务器,或者直接用wget命令下载。下载好后可以直接用java -jar jenkins.war 运行。如果安装了tomcat等web服务器的话就放入对应的路径运行服务器即可。tomcat在webapps下。不推荐使用tomcat,因为war包里本身就包括了一个内置的服务器。如果想后台运行可以用nohup命令。nohup java -jar jenkins.war &  ,指定端口加上 --httpPort=xxxx 。


下载好打开ip:端口就可以。第一次登录需要一个密码,随后可以创建一个管理员账号。密码在下图位置:


2018091416115830.png


那个随机的数字+字母就是初始化密码了。账号默认admin。


Jenkins主界面:


20180914161831632.png


因为我服务器上已经安装好了jdk,git,maven等工具,所以这里就不演示怎么安装了,相信大家都会,今天只说Jenkins。


然后在左上角点开系统管理--->全局工具配置,拉到最底下配置一个maven,点击新增,取消勾选自动安装,填上自己的maven路径然后保存就可以!


20180914162611879.png


回到首页,我们点击左上角新建任务,输入一个任务名称,选择自由风格的项目就可以。在源码管理下,选择git地址和分支名称。


20180914163108353.png


如果是svn也是同样的道理。构建这里选择刚才添加的maven插件。我这里是直接打包并跳过测试了。目标就是你的maven命令。


20180914163243502.png


其实到这里基本的步骤就完成了,首先已经克隆了项目,然后maven也打包了,去Jenkins的workspace下就可以看见打包过后的jar包了。


20180914163709142.png


这样最简单的办法就是直接 java -jar 运行jar即可(我这里是springboot项目),如果不是的话复制到tomcat目录下。但是都说了是自动化一键构建,所以再通过ssh工具操作linux服务器启动的话就有点low了。可以在项目构建完成后让Jenkins帮我们执行shell脚本文件,这样就代替了手动操作。也是很方便的。先提前写好一个脚本。这段脚本还是很好理解的,就算没学过shell也可以看得懂,但是linux基本命令是要会的。别忘了给脚本添加可执行权限:chmod +x restart.sh


#!/bin/bash
echo "restart project..."
#$1 项目名称 $2 jar名称
export project_path=/root/.jenkins/workspace/$1
ps -ef|grep java|grep $2|awk '{print $2}' | xargs kill -9
cd ${project_path}
cd target
nohup java -jar $2 > /root/.jenkins/workspace/$1/nohub.out 2>&1 &
echo "SUCCESS!"


在这里添加shell脚本命令。我直接把脚本放在workspace里面了。如果只有一个项目的话也可以写死项目名和jar名。我这里把他当作参数传进去了,那么这个脚本就可以通用别的项目。当然这里也可以不配git和maven,然后全程使用shell脚本来操作,不过对脚本的要求比较高,需要专门学习下。这里就不贴脚本了。(我们公司就是全脚本运行,当然不是我写的。啊哈哈!!)


20180914175444555.png


BUILD_ID=DONTKILLME
cd /root/.jenkins/workspace
./restart.sh spring-boot-template spring-boot-template-0.0.1-SNAPSHOT.jar


完成后可在控制台看见日志文件,方便找错。


20180914175656498.png


linux的nohub日志文件:目录位置在上面的脚本文件里,可以进行修改,方便自己查看。


20180914175817283.png


然后这篇博客就到这里了。(本人才疏学浅,如有错误纯属正常,欢迎指出!)

目录
相关文章
|
25天前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
206 3
|
26天前
|
自然语言处理 jenkins 测试技术
Jenkins适合什么样的项目
【10月更文挑战第18天】Jenkins适合什么样的项目
30 3
|
1月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
69 0
|
2月前
|
设计模式 数据库连接 PHP
PHP中的设计模式:如何提高代码的可维护性与扩展性在软件开发领域,PHP 是一种广泛使用的服务器端脚本语言。随着项目规模的扩大和复杂性的增加,保持代码的可维护性和可扩展性变得越来越重要。本文将探讨 PHP 中的设计模式,并通过实例展示如何应用这些模式来提高代码质量。
设计模式是经过验证的解决软件设计问题的方法。它们不是具体的代码,而是一种编码和设计经验的总结。在PHP开发中,合理地使用设计模式可以显著提高代码的可维护性、复用性和扩展性。本文将介绍几种常见的设计模式,包括单例模式、工厂模式和观察者模式,并通过具体的例子展示如何在PHP项目中应用这些模式。
|
1月前
|
前端开发 Java Shell
后端项目打包上传服务器部署运行记录
后端项目打包上传服务器部署运行记录
32 0
|
1月前
|
Java Linux Maven
服务器部署之项目打包及命令行输出
服务器部署之项目打包及命令行输出
24 0
|
1月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
143 0
|
2月前
|
JavaScript Linux 开发工具
如何将nodejs项目程序部署到阿里云服务器上
该文章详细描述了将Node.js项目部署到阿里云服务器的步骤,包括服务器环境配置、项目上传及使用PM2进行服务管理的过程。
|
3月前
|
jenkins 测试技术 持续交付
Jenkins 在多分支项目中的应用
【8月更文第31天】在现代软件开发实践中,分支管理是一项至关重要的策略,它允许开发团队在不同的功能开发、修复bug或进行实验时不会干扰主干代码。随着项目的复杂度增加,维护多个分支并确保它们的质量变得越来越具有挑战性。Jenkins 作为一款流行的持续集成(CI)和持续部署(CD)工具,提供了强大的功能来支持多分支项目的自动化测试和部署。本文将探讨 Jenkins 如何帮助管理多分支项目,并提供具体的代码示例。
92 0
|
3月前
|
jenkins Java Shell
jenkins学习笔记之十三:配置SonarScanner扫描Java项目
jenkins学习笔记之十三:配置SonarScanner扫描Java项目