1.下载安装
前置条件:需要安装JDK,注意版本兼容性!
官方教程文档:https://www.jenkins.io/zh/doc/book/installing/#setup-wizard
下载jekins war 包
下载地址 :https://get.jenkins.io/war-stable/
注意:jdk8 对应 2.346.1 (June 2022) and newer
2.运行和设置管理员账号
初次运行war包会有一个 密码 ,复制下来保存,安装过程中需要。
初始运行好后访问会需要设置管理员账号。
maven项目需要依赖和教程如下:
参考来源链接:https://www.jb51.net/article/237384.htm
加maven
加jdk
加git (有坑)
坑:这里的目录一定要加到 bin目录里面的git 否则会有问题 报错
报错如下:
设置git账号密码:
只需要输入用户名密码添加即可
流程示例
运行命令(注意有坑):
// 指定端口号运行命令 --httpPort=XXXX
java -jar jenkins.war --httpPort=8082 // 此处表示指定以8082端口运行jenkins.war
// windows 环境后台运行jar包命令 start javaw ....
// linux 环境的 nohup 与 windwos的 start差不多
start javaw -Dhudson.util.ProcessTree.disable=true -jar C:\Users\admin\Downloads\jenkins.war --httpPort=8082
/**
*注意:上面的启动jenkins的命令加了 -Dhudson.util.ProcessTree.disable=true
* 这是因为有坑,我是用maven构建的,在maven构建后运行构建的业务jar包的时候,是属于子进程,如果不加上* 面的-Dhudson.util.ProcessTree.disable=true 命令,就会导致jenkins maven build结束后自动清空子进程。
* 导致运行的业务jar包进程自动退出。详细见下图
*/
不加上述启动参数 会导致构建的时候有错 如下
坑:windows遇到的 需要以管理员身份运行终端 去启动jenkins ,否则拉取git代码失败
错误:jenkins 构建拉取git仓库代码报错 ,git的配置 路径 账号密码 都是对的 就是拉取不了
原因:没有以管理员身份运行终端启动jenkins
解决特定场景问题:
场景1:因为我用的是idea默认的tomcat,所以不是每个java程序单独复制一个tomcat的。
windows环境下,一个jenkins服务,构建了一个maven项目,重复构建的时候需要先停止正在运行中的jar包,再celan,再build,package。如果正在运行中的java包没有被停止,maven构建的时候clean会报错,因为无法clean正在运行的文件(好比windows无法删除打开中的文件一样)。
我这是直接停止了某类程序
如果运行的有多个java程序怎么办呢?我们只希望停止指定的这个,并不想停止所有的javaw.exe
解决方案:我们给每个运行这个jenkins构建任务的jar包的运行环境起个别名。
比如我不仅要构建 javaw-scienx-local 的,还需要javaw-scienx-test的,prd的,
那么我们找到这个运行程序,复制出来起个别名,然后再start.bat中指定用哪个程序来运行。
第二步
第三步,在jenkins test环境的启动脚本里 用这个 javaw-scienx-test.exe 去运行jar包,
停止脚本也改成停止 javaw-scienx-test.exe 程序 即可
这样在一台机器的系统里,运行某个环境的程序名是唯一的
比如:本地jar包A是 javaw-scienx-local.exe , 测试jar包 B 是用 javaw-scienx-test.exe 运行的,
停止的时候,停止的对象就是唯一的,不会发生停止 javaw-scienx-local.exe类程序,导致停止了多个jar包。
解决的问题:
我们希望通过不显示终端窗口的方式( javaw -jar 的方式)来运行jar包,停止的时候,因为是固定命令操作,而每次重启java程序的pid是变化的,不好用命令根据pid来停止某个指定jar包。
以此方式来实现,在一个jenkins中,用命令停止指定的jar包,不需要去考虑pid是变量不好指定停止的问题,又都能达到 javaw -jar 启动的效果(不显示终端窗口的启动效果,因为都是从javaw复制出来的)。
如何让war包后台运行:https://www.cnblogs.com/danielzzz/p/16358783.html