jenkins maven项目实战

环境

实例说明

  • gitlab工程地址:git@192.168.62.206:Mall/eureka.git
  • jenkins构建完成后本地存放位置:/target
  • depserver工程目录:/home/jiagouzu/tingyun/target/

流程

  1. jenkins通过gitlab pull工程代码
  2. jenkins通过本地maven工具构建、打包工程代码
  3. jenkins把完成的.jar推送到服务器相应目录下

注意事项

  1. jenkins pull代码时,gitlab要确保有jenkins的Deploy key

    key信息

  2. gitlab的项目“Mall/eureka”启用deploy key(settings–> Repository–>Deploy Keys):

jenkins配置说明

jenkins配置depServer节点

  1. 添加depserver服务器节点(系统管理–>系统设置–>SSH Servers)
  2. 新建一个Server,完成后选择高级配置相关信息:

    其他保持默认,最后选择Test Configuration可测试下

配置拉取gitlab地址私钥信息

这里就不多讲了,具体步骤可见jenkins基本使用

创建项目

  1. 新建一个项目,类型为自由风格的(maven类型有很多限制),这里我的名称为“商城”
  2. 配置“商城”,在General标签里配置相关信息,注意点开“高级”选择“使用自定义的工作空间”

  3. 源码管理

  4. 构建触发器

    手动还是自动构建,这里也可以看之前的文章jenkins基本使用

  5. 构建环境

  6. 构建(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.
    
  7. 构建后操作(完成构建后的部署工作)

    选择“Send build artifacts over SSH”,注意要安装 over ssh插件

    注意: 这里的Remote directory指的就是前面配置depserver的工程目录地址“/home/jiagouzu/tingyun”

  8. 点击完成后就可以测试了,默认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能执行的权限。

  9. 最后测试输出类似信息证明配置成功:

    [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