jenkins启动后自动关闭怎么回事 jenkins启动失败_jenkins启动后自动关闭怎么回事


上一篇文章主要是jenkins如何集成gitlab,详情请查看:


汪康:jenkins学习系列之集成gitlabzhuanlan.zhihu.com

jenkins启动后自动关闭怎么回事 jenkins启动失败_enspac启动失败代码2_02



一、jenkins集成PMD流程

实际生产中,上线的代码往往要经过检测,满足一些规则才行,这些规则可以是直接使用官方的规则,也可以是自己写的。

因为目前的工作和java有关,所以这里以java代码静态检测 PMD为例子来进行讲解。这里PMD是通过maven命令来启动的。

jenkins集成pmd流程大致如下:

  1. 用户上传代码到代码库,代码库有代码变更
  2. jenkins抓取到这次变更,开始下载代码库
  3. jenkins开始解析maven pom文件,并下载相应的依赖
  4. jenkins开始pmd检测,检测通过就构建成功,检测失败就发送失败邮件

本篇文章是以gitlab当做代码的存放地址,具体配置可以查看上一篇文章。关于实时抓取代码变更,jenkins中有gitlab的merge request操作以及“Build when a change is pushed to GitLab”选项,但是因为我是用的本地jenkins,而gitlab中web-hook不允许使用localhost,所以第三个选项和第六个选项都勾选不了,这两个选项具体的区别之后用到的时候再讲,这里我采取的其他办法(scm poll、手动构建),如下图所示:


jenkins启动后自动关闭怎么回事 jenkins启动失败_maven_03



二、jenkins配置

2.1 邮件配置

试想这样一种情景:代码修改很频繁的情况下,项目负责人需要一直跟进jenkins的工作状态,对其来说,也是一件很痛苦的事情。所以在实际项目中,我们需要使用邮件的功能,当构建失败的时候发送邮件给项目负责人。

  1. 安装“Email Extension Plugin”插件

Email Extension Plugin即可

2. 邮件配置

点击系统管理--->系统设置


jenkins启动后自动关闭怎么回事 jenkins启动失败_maven_04


3.job中邮件配置


jenkins启动后自动关闭怎么回事 jenkins启动失败_enspac启动失败代码2_05


2.2 job配置

因为pmd是用maven来启动的,所以在配置的时候需要先配置好maven环境,具体配置见

汪康:jenkins学习系列之jenkins基本配置zhuanlan.zhihu.com

jenkins启动后自动关闭怎么回事 jenkins启动失败_enspac启动失败代码2_02


  1. 新建一个maven项目


jenkins启动后自动关闭怎么回事 jenkins启动失败_代码库_07


2.job配置如下

  • General部分


jenkins启动后自动关闭怎么回事 jenkins启动失败_代码库_08


  • 源码管理部分选择git
  • build配置如下所示(一般Goals and options填写pmd:pmd,不需要再另外配置pom):


jenkins启动后自动关闭怎么回事 jenkins启动失败_代码库_09


  • 构建设置如下图所示:


jenkins启动后自动关闭怎么回事 jenkins启动失败_jenkins启动后自动关闭怎么回事_10


3.pom文件部分配置如下所示:


<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
                <version>3.0.1</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>


  • 1.6指的是jdk的版本
  • 如果对于maven的pom文件不太熟悉,请自行百度(因为我也不熟悉^_^)
  • 如果在jenkins上出现pom.xml找不到,可能是你配置的地址不对,请自行核查pom文件是否在你的根目录下
  • 如果在构建的时候因为有错误导致jenkins一直在执行中,点击叉叉依然停止不了,请自行使用命令行jenkins restart来重启jenkins,然后刷新页面

2.3项目运行以及查看

配置完了以后点击立即构建:

左下角红色代表构建失败,说明有错误需要解决,蓝色代表构建成功。点最近的一次构建:


jenkins启动后自动关闭怎么回事 jenkins启动失败_maven_11


失败以后会收到相应的邮件,这里我以163邮箱截图为例子:


jenkins启动后自动关闭怎么回事 jenkins启动失败_maven_12


邮件里面是jenkins的log日志,可以自己去配置邮件模板来解决显示内容的问题。


以上就是jenkins集成PMD的全部过程了。PMD主要是java代码的扫描,还有的是findbugs、checkstyle以及jacoco覆盖率等都可以使用jenkins集成起来,如果你是用的php、C++、C等编程语言,那推荐可以使用sonarqube来做代码检测,sonarqube的代码检查的广度和深度都更高,这个以后用到了再说如何配置。

如果对文章有疑问或者哪里不懂的请联系我,在力所能及的范围内帮助解答;如果文章有错误,也欢迎指出;也希望jenkins的大牛来一起互相交流学习。

微信号:kakaicoco