环境
- gitlab: http://192.168.62.206
- jenkins: http://192.168.62.210:8080
- depserver: 192.168.63.116
实例说明
- gitlab工程地址:git@192.168.62.206:Mall/eureka.git
- jenkins构建完成后本地存放位置:/target
- depserver工程目录:/home/jiagouzu/tingyun/target/
流程
- jenkins通过gitlab pull工程代码
- jenkins通过本地maven工具构建、打包工程代码
- jenkins把完成的.jar推送到服务器相应目录下 
注意事项
- jenkins pull代码时,gitlab要确保有jenkins的Deploy key  - key信息  
- gitlab的项目“Mall/eureka”启用deploy key(settings–> Repository–>Deploy Keys):  
jenkins配置说明
jenkins配置depServer节点
- 添加depserver服务器节点(系统管理–>系统设置–>SSH Servers)
- 新建一个Server,完成后选择高级配置相关信息:  - 其他保持默认,最后选择Test Configuration可测试下  
配置拉取gitlab地址私钥信息
这里就不多讲了,具体步骤可见jenkins基本使用
创建项目
- 新建一个项目,类型为自由风格的(maven类型有很多限制),这里我的名称为“商城”
- 配置“商城”,在General标签里配置相关信息,注意点开“高级”选择“使用自定义的工作空间”  
- 源码管理  
- 构建触发器 - 手动还是自动构建,这里也可以看之前的文章jenkins基本使用 
- 构建环境  
- 构建(mvn命令执行构建)  - 这里注意mvn命令的位置,jenkins默认安装选择在 - /home/apache-maven-3.5.2/bin/mvn - 可通过(系统管理–>全局工具配置)进行相应的更改,但要给予jenkins执行的权限,这里我把命令ln到/usr/local/bin目录下,chmod +x mvn  - 如果没有设置会报类似错误: - [/target] $ /bin/sh -xe /tmp/jenkins6497126245319590786.sh + mvn clean package /tmp/jenkins6497126245319590786.sh: line 2: mvn: command not found Build step 'Execute shell' marked build as failure SSH: Current build result is [FAILURE], not going to run. 
- 构建后操作(完成构建后的部署工作) - 选择“Send build artifacts over SSH”,注意要安装 over ssh插件  - 注意: 这里的Remote directory指的就是前面配置depserver的工程目录地址“/home/jiagouzu/tingyun” 
- 点击完成后就可以测试了,默认maven构建的配置文件直接找的官方地址,在构建日志当中会出现如下信息 - https://repo.maven.apache.org/maven2/org/hibernate/hibernate-validator/5.3.6.Final/hibernate-validator-5.3.6.Final.jar (727 kB at 2.4 kB/s) Downloading from central: https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-actuator/1.5.9.RELEASE/spring-boot-starter-actuator-1.5.9.RELEASE.jar - 这里需要注意: - 第一次构建时,maven需要下载部署工程所需要的jar包; - 改善办法之一是同开发要一份maven构建工具的settings.xml 配置文件替换你的maven工具里的settings.xml(一般开发会有自己的内部仓库),在这里是我的jenkins服务器中的“/home/apache-maven-3.5.2/conf/settings.xml”,注意修改里面的“ - /MavenRepository ”这是指你存放maven工具所需jar包的目录,别忘了给jenkins能执行的权限。
- 最后测试输出类似信息证明配置成功: - [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 4.246 s [INFO] Finished at: 2018-03-07T14:54:53+08:00 [INFO] Final Memory: 36M/203M [INFO] ------------------------------------------------------------------------ SSH: Failed to get hostname [192v168v62v210: 192v168v62v210: 未知的名称或服务] SSH: Connecting with configuration [192.168.63.116] ... SSH: EXEC: STDOUT/STDERR from command [/bin/bash /home/mall_start.sh start] ... SSH: EXEC: completed after 200 ms SSH: Disconnecting configuration [192.168.63.116] ... SSH: Transferred 1 file(s) Finished: SUCCESS