1. 程式人生 > >ant + findbugs 安裝及實現靜態程式碼檢查,並生成HTML檢查報告

ant + findbugs 安裝及實現靜態程式碼檢查,並生成HTML檢查報告

1、ant + findbugs安裝

通過Eclipse或者MyEclipse繼承ant、findbugs外掛。外掛可以到網上去下。

注:findbugs最好是下載1.3.9版本,如果是其他版本,可能在執行的時候會提示版本衝突錯誤!

2、通過findbugs做靜態程式碼檢查,此處可以說有兩種方式。

A、直接生成HTML報告形式,在專案根目錄下新建檔案build.xml,將如下程式碼複製進去

<project name="DHOME_ANDRIOD_CodeCheck" default="findbugs">
	
	<property name ="findbugs.home" 
		value ="C:\Program Files\MyEclipse 6.5\myeclipse\eclipse\plugins\edu.umd.cs.findbugs.plugin.eclipse_1.3.9.20090821"/>

	<path id="findbugs.lib"> 
		<fileset dir ="${findbugs.home}/lib"> 
			<include name ="findbugs-ant.jar"/> 
		</fileset> 
	</path>
	<taskdef name="findbugs" classpathref ="findbugs.lib" classname="edu.umd.cs.findbugs.anttask.FindBugsTask"></taskdef>

	<target name ="findbugs">
		<findbugs home ="${findbugs.home}" jvmargs="-Xmx884m" output ="html" outputFile ="D:/findbugs.html"> 
			<class location ="WebRoot\WEB-INF\classes\com"/> 
			<auxClasspath path="${findbugs.home}/lib/findbugs-ant.jar"/> 
			<auxClasspath> 
				<!--<fileset dir="Z:/BR_Telfort_201000729/BS/CUSTCARE/webapp/WEB-INF/lib" includes="**/*.jar" /> -->
			</auxClasspath> 
			<sourcePath path ="src"/> 
		</findbugs>
	</target>
</project>
說明:

findbugs.home 是下載的findbugs外掛存放的路徑,我的是在MyEclipse6.5下,即value中的值;

findbugs.lib 是findbugs執行依賴的jar包存放路徑(要將findbugs.jar跟findbugs-ant.jar)拷到findbugs外掛的lib目錄下

taskdef 定義ant任務,name是ant任務名稱,classpathref只想jar包路徑

target 具體的ant任務output指定輸出的格式,class指定要檢查的程式碼存放的路徑(因為findbugs是檢查的.class檔案,所以只想編譯後的class檔案所在的路徑),auxClasspath是findbugs依賴但是不希望其檢查的jar包,sourcePath 指定原始碼路徑

這樣設定之後,直接右鍵改build.xml檔案選擇ant build即可生成HTML程式碼檢查報告

B、直接在MyEclipse中右鍵需要檢查的類或者包選擇find bugs(如果你外掛安裝正確的話大笑) 即可

3、生成HTML檢查報告,也有兩種方式可以生成報告

A、即2、中的A

B、新增檢查規則(本人不會再xml中新增,就用了下面這個方法害羞

1)右鍵要檢查的專案,選擇properties,點選findbugs選項在Detector configration中選擇需要或者不需要的檢查規則項即可

2)通過2、中的B檢查完成後開啟MyEclipse的 Bug Explorer 檢視發現的bug ,右鍵專案名稱,選擇save xml會將檢查結果儲存成一個檔案(我命名為findbugs),修改檔案的字尾名為xml(findbugs.xml)

3)在專案根目錄下新建build.xml檔案,如果已存在,可以將原來的重新命名下,新增以下資訊,右鍵執行即可生成HTML報告

<project name="lt" default="convertHTML" basedir=".">

    <property name="findbugs.home" 
    	value="C:\Program Files\MyEclipse 6.5\myeclipse\eclipse\plugins\edu.umd.cs.findbugs.plugin.eclipse_1.3.9.20090821" />
    <property name="findbugs.file" value="D:/findbugs.xml" />
    <property name="findbugs.desthtml" value="D:/findbugs.html" />

    <path id="findbugs.lib">
        <fileset dir="${findbugs.home}/lib">
            <include name="findbugs-ant.jar"/>
        </fileset>
    </path>
        
    <taskdef name="findbugs" classpathref ="findbugs.lib" classname="edu.umd.cs.findbugs.anttask.FindBugsTask" />
    <taskdef name="convertXmlToText" classname="edu.umd.cs.findbugs.anttask.ConvertXmlToTextTask">
        <classpath refid="findbugs.lib" />
    </taskdef>

    <target name="convertHTML" >
        <!--
        <filterBugs home="${findbugs.home}" output="filterBugs.html" withmessages="true" >
            <datafile name="${findbugs.file}"/>
        </filterBugs>
        -->
        <convertXmlToText home="${findbugs.home}"
        input="${findbugs.file}" 
        output="${findbugs.desthtml}"
        format="html:default.xsl">
        </convertXmlToText>
    </target>

</project>

相關推薦

ant + findbugs 安裝實現靜態程式碼檢查生成HTML檢查報告

1、ant + findbugs安裝 通過Eclipse或者MyEclipse繼承ant、findbugs外掛。外掛可以到網上去下。 注:findbugs最好是下載1.3.9版本,如果是其他版本,可能在執行的時候會提示版本衝突錯誤! 2、通過findbugs做靜態程式碼檢查

Python3 + Appium + 安卓模擬器 實現APP自動化測試生成測試報告

概述 本文主要分為以下幾個部分 安裝Python3 安裝Python3的Appium庫 安裝Android SDK 安裝JDK 安裝Appium 安裝模擬器 編寫測試指令碼並生成測試報告 正文 一、安裝Python3 直接登入Python官網https://

ANT呼叫JMeter執行指令碼生成html測試報告

1、 下載解壓ANT 2、 下載解壓JMeter 3、 設定環境變數:ANT_HOME=ANT解壓的主目錄,JMETER_HOME= JMETER解壓的主目錄,將%ANT_HOME%\bin;加入PATH中 4、 將JMeter目錄下的apache

jquery實現可編輯表格生成json結果

實現效果如下,在編輯表格的同時可以實現欄位json內容的自動變化,點選提交可以儲存到後臺,頁面載入的時候自動解析json並載入表格內容。該程式碼解析和載入功能都用前端js實現,簡化了後臺程式碼邏輯。 定義要操作的表格頭: <input readonly="read

墨卡託投影座標系(Mercator Projection)原理實現C程式碼

轉:https://www.cnblogs.com/DHUtoBUAA/p/6706642.html   墨卡託投影是一種“等角正切圓柱投影”,荷蘭地圖學家墨卡託(Mercator)在1569年擬定:假設地球被圍在一箇中空的圓柱裡,其赤道與圓柱相接觸,然後再假

Nginx原始碼編譯安裝實現負載均衡

Nginx (engine x) 是一個高效能的HTTP和反向代理服務,工作在網路的7層之上,可以針對http應用做一些分流的策略, 比如針對域名、目錄結構,它的正則規則比HAProxy更為強大 和靈活,這也是它目前廣泛流行的主要原因之一,Nginx單憑 這點可利用的場合就

Jenkins安裝配合GitLab程式碼自動部署

** git—倉庫搭建及使用 ** ################################################################### 建立使用者 [kiosk@foundation6 ~]$ git confi

Mac: mac git 的安裝 實現自動補全

htm use path raw spa file con get all 1.檢查是否裝了brew $ brew list如果沒有,拷貝以下命令到終端 回車.可以安裝好brewruby -e "$(curl -fsSL https://raw.githubusercont

FreeSwitch 1.9.0 安裝配置使用MySQL管理賬戶實現視訊通話

最近因為專案上的需要入手了FreeSwitch。 之前嘗試過Asterisk,但個人感覺對H264的支援不是特別友好,所以用才選擇了FreeSwitch。 安裝FreeSwitch前的準備工作: 1、VMare上安裝一個CentOS的虛擬機器 安裝CentOS 7:

mac git 的安裝 實現自動補全

完成 隱藏文件 con span 說明 killall github -html --help 1.檢查是否裝了brew $ brew list 如果沒有,拷貝以下命令到終端 回車.可以安裝好brew ruby -e "$(curl -fsSL https

d指針在Qt上的應用實現(有圖很清楚)

rhel -name spa 自動 版本庫 留空 擴展 vat 因此 Qt為了使其動態庫最大程度上實現二進制兼容,引入了d指針的概念。那麽為什麽d指針能實現二進制兼容呢?為了回答這個問題,首先弄清楚什麽是二進制兼容?所謂二進制兼容動態庫,指的是一個在老版本庫下運行的程序,在

lua裡實現類似巨集定義動態生成程式碼

其實就是用了  lua 的 loadstring 功能。 1.把需要動態生成的程式碼拼接成為一個字串。 str 2. loadstring(str)   這個只是解析了程式碼,相當於一個function   需要 執行一下才會生效

java中靜態變數靜態程式碼靜態方法例項變數匿名程式碼塊的載入順序

1. java中靜態變數,靜態程式碼塊,靜態方法,例項變數,匿名程式碼塊 在Java中,使用{}括起來的程式碼稱為程式碼塊,程式碼塊可以分為以下四種: (1)普通程式碼塊:就是類中方法的方法體 public void xxx(){ //code }

Spring MVC實現靜態資源訪問viewcontroller攔截器路徑匹配等配置

spring mvc 定製配置需要配置類繼承 一個webmvcconfigureradapter ,通過重寫這個類的方法,來完成常用的配置 包括靜態資源 , controller ,攔截器,路徑匹配的配置等等 具體程式碼如下 @Component public class WebMv

使用Docker安裝Seafile雲盤專業版配置域名SSL證書

說明:Seafile是一個開源的檔案雲端儲存平臺,主要是為團隊設計的,功能很多,使用者可加密資料庫,且密碼不會儲存在伺服器端,管理員也無權訪問你的檔案。使用者之間也可以共享和同步檔案,方便了團隊協同工作。其版本分為開源免費版和專業版,兩者區別挺大的,比如專業版多了搜尋、叢集、亞馬遜S3、Ceph、阿里雲

Java基礎---面向物件(面向物件物件匿名物件封裝建構函式構造程式碼thisstaticmain幫助文件靜態程式碼單例)

一. 面向物件概念: 面向物件其實是一種思考的思想,早期思想是面向過程。 面向過程注重的是過程,過程所涉及的行為,也就是功能。 【例項】:面向過程: 1. 把冰箱開啟 2. 把大象放入 3. 冰箱關起來      面向物件: 開啟冰箱,儲存,關閉都是對冰箱的操作,是冰箱的行為

MAC office2016 安裝啟用(試了一下靠譜 非常感謝原作者)

      非常感謝原作者。 一、安裝包下載地址 http://officecdn.microsoft.com/sg/C1297A47-86C4-4C1F-97FA-950631F94777/OfficeMac/Microsoft_Office_2016_15

靜態程式碼構造程式碼普通程式碼

package practice; public class CodeBlock { public static void main(String[] args) { new Work().method(); System.out.println("-------

java中靜態變數靜態方法靜態程式碼構造程式碼構造方法...執行順序

public class TestExeOrder { public TestExeOrder(){ System.out.println("類的構造方法執行了..."); } { System.out.println("構造程式碼塊執行了

Java中靜態成員變數靜態程式碼靜態內部類何時被初始化?

關於這個問題,本文不扯理論,直接上程式碼,通過結果來驗證結論,廢話少說,測試程式碼如下: public class StaticTest { public static StaticMember staticMember = new Static