安装就不说了, 因为安装实在是很简单的。
Jenkins基础配置
配置jdk 和maven
进入Global Tool Configuration, 配置JDK:
一般不要选择自动安装, 否则下载半天还可能会失败。 而且从oracle 下载可能还需要注册,认证, 很烦。
配置Maven:
同样,不要选择自动安装
在Global Tool Configuration 里, 还可以陪着ant, git , Gradle,docker 等。
设置构建属性
构建属性还有很多,不过暂时我不太会,只懂这个。
Jenkins系统配置
这里主要需要配置 主目录,当然, 默认C 盘也是可以的。 其他的基本暂时不需要动
源码管理可以是 GIT, 也可以是SVN, 也可以是None。
GIT 配置:
git@github.com:R1310328554/game-of-life.git
认证选择 用户名密码方式:
用户密码当然就是 git 账号的 登录密码—— 这里一定要搞清,不是别人的git 账号的登录密码。填好后,可以在Credentials 下拉框里面看到:
svn 的源码方式配置和 git 是差不多的。
需要注意的是none 方式配置, 这个是之前没有想过的。其实也是完全可行的。但是有个要求就是,它的项目源码必须放置到Jenkins Home 的workspace 目录,
我这里是: E:wsjenkinsworkspace
但是, none 方式有个问题是, 清除项目对应的workspace后, 整个项目的源码也就没了,所以,使用 none 方式需要小心。
Jenkins里面的GIT ,SVN 是如何工作的? 我感觉应该是Jenkins插件的作用。 和本机本地的GIT, SVN 应该是没关系的吧。
配置GIT,SVN 好了,才算Jenkins 入门了。 这个其实还是比较简单的,不过我当初却是绕了很多弯路。
常用插件
(这里有很多的Trend 图, 但是需要稍注意的是, 第一次构建是不会出现Trend图的, 只有构建了,2次及以上才会出现。)
Findbugs:
maven配置:
<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>3.0.4</version>
<configuration>
<findbugsXmlOutput>true</findbugsXmlOutput>
<!--<findbugsXmlWithMessages>true</findbugsXmlWithMessages>-->
<xmlOutput>true</xmlOutput>
<findbugsXmlOutputDirectory>target/site</findbugsXmlOutputDirectory>
</configuration>
</plugin>
...
增加构建后的操作:
findbugs 结果:
findbugs:gui 是这样的,它其实就是一个java 的applet 程序:
参考:
http://wchlt.blog.163.com/blog/static/2196057201372833659235/
checkstyle:
Pom.xml中加入checkstyle 插件:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.17</version>
<configuration>
<encoding>utf-8</encoding>
<configLocation>${project.basedir}/huawei_checkstyle.xml</configLocation>
<logViolationsToConsole>true</logViolationsToConsole>
</configuration>
</plugin>
...
Jenkins中配置install checkstyle:checkstyle:
错误详细信息:
Cobertura:
首先要配置 cobertura 插件,启用它(启用后必须重启服务器)
启动过程中可能有报错:
警告: Failed to scout hudson.plugins.cobertura.MavenCoberturaPublisher java.lang.InstantiationException: java.lang.NoClassDefFoundError: hudson/maven/MavenReporter at net.java.sezpoz.IndexItem.element(IndexItem.java:146) at hudson.ExtensionFinder$Sezpoz.scout(ExtensionFinder.java:656) at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:473) at hudson.ExtensionList.load(ExtensionList.java:365) at hudson.ExtensionList.ensureLoaded(ExtensionList.java:303) at hudson.ExtensionList.getComponents(ExtensionList.java:168) at jenkins.model.Jenkins$8.onInitMilestoneAttained(Jenkins.java:1121) at jenkins.InitReactorRunner$1.onAttained(InitReactorRunner.java:82) at org.jvnet.hudson.reactor.ReactorListener$Aggregator.onAttained(ReactorListener.java:104) at org.jvnet.hudson.reactor.Reactor$1.run(Reactor.java:176) at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)
我开始的时候,一直纠结于这个错误,看来很多相关文章,花了很长时间,心想一定要把这个错误解决,结果到后面还是没能解决。 看到了这个好像是Jenkins是一个bug, 但是看不懂解决方案。。
这个没解决,感觉就无法继续了,书上都是这么写的, 为什么我这里就是有这个错误? Jenkins权威指南看了很多遍,还是无解。 可能还是Jenkins版本问题吧。
到最后, 竟然发现, 这个错误不解决也是ok的, 不影响 cobertura 的使用。。。
Mave 配置:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.5</version>
<configuration>
<formats>
<format>html</format>
<format>xml</format>
</formats>
</configuration>
</plugin>
</plugins>
</build>
Jenkins中使用:
构建结果:
参考:
http://www.cnblogs.com/magmell/p/7069154.html
http://blog.csdn.net/zzq900503/article/details/49617939