一、安装jenkins
参考教程:https://www.cnblogs.com/yanjieli/p/10606674.html
假设jenkins安装路径:/usr/local/jenkins
后续新建item都会在这个路径的workspace目录下:/usr/local/jenkins/workspace/项目名称
二、安装插件并配置SSH
系统管理 -> 插件管理 -> 可选插件,搜索Publish Over SSH 进行下载
安装完成后,进入系统管理 ->系统配置(上图第一个),鼠标滑到下面,找到如下页面,配置ssh服务器:输入服务器名称、IP、用户名、密码、发布项目得默认路径!
点击【高级】,勾选 ‘User password’,并且输入远程服务器密码,点击 ‘Test Configuration’,成功。
三、全局工具配置
1.maven路径:jenkins上maven的settings.xml文件所在路径
2.JDK路径:jenkins上jdk安装路径
3.maven安装路径:
4.git如下配置即可
三、新建任务
点击左侧菜单栏:新建item。项目名称:test
如下图所示,如果没有 ‘构建一个maven项目’,需要下载插件(系统管理 -> 插件管理 -> 可选插件,搜索Maven Integration
进行下载)。如果你想copy一个已经存在的任务,在复制那个输入框输入你要复制的任务就ok了。
安装依赖包:javadoc,自动安装若失败,手动下载
http://updates.jenkins-ci.org/download/plugins/javadoc/1.4/javadoc.hpi
http://updates.jenkins-ci.org/download/plugins/maven-plugin/2.14/maven-plugin.hpi
然后在高级安装中上传(可以更改升级站点URL源:http://mirror.esuni.jp/jenkins/updates/update-center.json或者https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json)。
参考:https://www.cnblogs.com/robert-zhang/p/8571332.html、https://blog.csdn.net/u013019701/article/details/103649773
点击【确定】按钮,进入任务配置页面。
基本配置:
勾选This project is parameterized,选择git parameter(需要安装插件Git Parameter),输入变量名:branch ,参数类型:分支或标签, 默认值:master
源码管理:
勾选Git,输入项目URL,添加Git账号/密码(有权限拉取代码的账号),在Branches to build中填入刚才的变量名,注意要加$
BUILD
如果是多个项目的话,最好指定相应项目的POM文件路径:/usr/local/jenkins/workspace/test/java/estate-service/pom.xml
这里根据项目路径,输入相对路径即可。
打包命令:clean package -Dhttps.protocols=TLSv1.2 -Dmaven.test.skip=true
包文件传送到远端
方法一:在post-steps中over ssh,如下图
方法二:添加构建后操作,如下图
选择SSH Server:Name下拉菜单选择上面添加得SSH服务器
Transfer设置:
Source files:java/estate-service/target/*.jar
目标文件:即需要从jenkins传输得jar包,打包成功后,会在该路径(/usr/local/jenkins/workspace/test/java/estate-service)下生成target文件夹,里面的jar包就是我们需要的。
Remove prefix:java/estate-service/target/ 需要去掉的前缀,也就是过滤掉不要的文件夹,我只要jar,所以把它的上级全部都去掉了。
Remote directory:远程服务器的发布路径,即jar包要发到哪个路径去,注意:实际路径是在系统配置中 SSH Server中配置的 remote dictionary + 这里配置的,我就发到当前路径,所以这里我就输入./
Exec command:文件发到指定服务器后,要执行的 shell 脚本,可以直接写在下面,也可以 sh /aa.sh 这样调用。注意,所有的路径都要是绝对路径,不然会找不到执行文件。
#!/bin/sh ps -ef|grep -v 'grep' |egrep "estate-service.jar"|awk '{system("kill -9 "$2)}' echo ------------------------------------------- echo start server echo ------------------------------------------- # jar的部署地址 export CODE_HOME="/acow/springboot" #所有项目日志统一在此根目录, 子目录会根据logback.xml生成 export LOG_PATH="/acow/logs" # 【需要按环境调整】apollo配置环境,开发、测试、生产是不同的。 export ENV=DEV export APP_ID=estate-service #【按实际调整】authfunc-service服务的端口 export Server_Port=9900 # JVM启动参数 export JAVA_OPTS="-server -Xms64m -Xmx128m" # -Dserver.port=$Server_Port -Dapollo.cacheDir=$apollo_cache -Dapollo.meta=$apollo_meta -Dspring.cloud.nacos.discovery.namespace=$nacos_discovery_namespace -Dspring.cloud.nacos.discovery.group=$nacos_discovery_group -Dspring.cloud.nacos.discovery.server-addr=$nacos_discovery_server export JVM_OPTS="-Dlog.path=$LOG_PATH -Denv=$ENV -Dapp.id=$APP_ID" nohup java $JAVA_OPTS $JVM_OPTS -jar $CODE_HOME/$APP_ID.jar >$LOG_PATH/$APP_ID/project.log 2>&1 & echo ----- started ---
保存、构建
至此,配置就完成了,我们点击保存,然后返回项目所在页面,单击build with parameter,选择分支,点击【开始构建】。
点击构建之后,我们可以在左下角 ‘构建队列’ 中看到本次构建进度,通过控制台输出,可以看到构建的详情。
看到如下日志输出,表示发布成功。可以到远程服务器发布路径下检查一下。
另外补充一点:如果配置文件有改动,怎么办?可以在构建前将配置文件手动修改好,再通过pro_steps将修改后的配置文件更新到jenkins的源码目录下: