hudson+findbugs的配置方法及无数坑爹的陷阱Word文档下载推荐.docx
- 文档编号:16403175
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:8
- 大小:2.02MB
hudson+findbugs的配置方法及无数坑爹的陷阱Word文档下载推荐.docx
《hudson+findbugs的配置方法及无数坑爹的陷阱Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《hudson+findbugs的配置方法及无数坑爹的陷阱Word文档下载推荐.docx(8页珍藏版)》请在冰豆网上搜索。
2、点击“更新”页签,如果出现“Hudson:
:
Maven(legacy):
Plugin”的更新,你最好乖乖的更新,否则你的job设置中的BuildSettings选项下的PublishFindBugsanalysisresults和E-mailNotification选项,勾选之后点击保存,再次打开设置页面,居然为空,保存不成功!
这是一个非常坑爹的BUG。
第二步:
准备工程
eclipse中新建个maven工程,要点是:
在依赖中添加
<
plugin>
groupId>
org.codehaus.mojo<
/groupId>
artifactId>
findbugs-maven-plugin<
/artifactId>
!
--<
version>
1.2<
/version>
-->
configuration>
findbugsXmlOutput>
true<
/findbugsXmlOutput>
findbugsXmlWithMessages>
/findbugsXmlWithMessages>
xmlOutput>
/xmlOutput>
findbugsXmlOutputDirectory>
target/test-findbugs<
/findbugsXmlOutputDirectory>
-->
/configuration>
/plugin>
注意点:
看到我注释掉的那句话了吗,这又是一个陷阱,假如放开注释,是可以执行成功的,但是你在Hudson中看不到结果,也就是在target/test-findbugs下你可以看到findbugsXml.xml,里面也确实有东西,你在命令行执行>
mvncleaninstallfindbugs:
findbugs或者>
gui都没有任何问题,但是一旦进入Hudson就是看不到FindBugsWarnings和FindBugsResult,这是因为FindBugs的HudsonPlug-in是从target目录中取得report。
又一个坑爹的陷阱。
手工运行一下mvncleaninstallfindbugs:
findbugs,可以看到报告的位置在target的根目录下,才是正确的。
第三步:
拷贝你的工程到\.hudson\jobs\你的job名\workspace\下。
没有workspace可以自己新建一个。
第四步:
Hudson»
新建任务
构建一个Maven2/3(Legacy)项目
进入设置界面:
SourceCodeManagement
自己看着办吧,从svn取或者自己拷贝到jobs/你的job名字/workspace中
Build
RootPOM:
填写相对于workspace的根pom的位置
Goalsandoptions:
填写诸如cleaninstallfindbugs:
findbugs或compile
findbugs:
findbugs此类的
BuildSettings:
勾选PublishFindBugsanalysisresults,其他可以用默认值。
1、一定要注意,cleanfindbugs:
findbugsinstall,这种写法是错的,可以运行的,但是并不产生findbugs报告,再次坑爹。
2、当然你可以选择“构建一个自由风格的软件项目”,在下一步配置界面选择InvokeMaven2(Legacy)或InvokeMaven3,这也是可以的,不过配置参数有所不同。
至此,全部完成,点击构建,不出意外的话,你可以看到结果页面。
注意:
如果你看到的Plug-inResult是个红叉叉,请修改Hudson»
插件管理»
系统设置
邮件通知中的HudsonURL为你的正确地址,注意使用ip地址,不要使用localhost,坑爹啊。
如果你用的所有包都是最新的,你很有可能会看到下面的错误,错误日志片段:
[java]java.text.ParseException:
Unparseabledate:
"
12/20/201109:
17PMEST"
[java]
atjava.text.DateFormat.parse(DateFormat.java:
337)
atedu.umd.cs.findbugs.Version.<
clinit>
(Version.java:
175)
atedu.umd.cs.findbugs.PluginLoader.init(PluginLoader.java:
595)
atedu.umd.cs.findbugs.PluginLoader.<
init>
(PluginLoader.java:
280)
atedu.umd.cs.findbugs.PluginLoader.loadCorePlugin(PluginLoader.java:
1304)
atedu.umd.cs.findbugs.PluginLoader.loadInitialPlugins(PluginLoader.java:
1259)
146)
atedu.umd.cs.findbugs.DetectorFactoryCollection.getCoreResource(DetectorFactoryCollection.java:
360)
atedu.umd.cs.findbugs.SystemProperties.loadPropertiesFromConfigFile(SystemProperties.java:
72)
atedu.umd.cs.findbugs.SystemProperties.<
(SystemProperties.java:
55)
atedu.umd.cs.findbugs.FindBugs2.<
(FindBugs2.java:
87)
这是为啥呢,又一个坑爹,是程序员就直接看代码,分析原因如下:
下载源码包findbugs-2.0.0-source.zip:
解压后,直接导入eclipse中即可。
打开
edu.umd.cs.findbugs.Version.java,从第175行开始,往上看。
解决办法:
如果你用的是maven,jar包的位置\.m2\repository\com\google\code\findbugs\findbugs\2.0.0\findbugs-2.0.0.jar
方法1:
修改类edu.umd.cs.findbugs.updates.UpdateChecker,然后将编译后的class文件,替换掉findbugs-2.0.0.jar中的对应类。
(由于有内部类,注意是4个类)
方法2:
看代码175行,打开jar中的version.properties可以看到错误原因正是这个文件中持久化的时间时区与DateFormat默认的时区不一致导致(我们是上海时区),因此修改该properties为正确值即可。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- hudson findbugs 配置 方法 无数 陷阱