我想要解決以下挑戰。這裏有一個當前設置:合併來自多個來源的Jacoco報告文件
- 詹金斯
- Maven的
- SonarQube
- 與多個模塊
所以目前在詹金斯我們有2個版本,一個爲正常分娩和另外一個Java應用程序生成聲納報告。
我們想要做的是用JaCoCo參數線生成一個構建,並將其發送到我們的QA團隊,以便獲得更好的覆蓋數字,我們可以使用聲納生成的數字來追加或合併建立我們每一天。發送給QA的構建將安裝到與我們生成構建的服務器不同的服務器上。
什麼是最好的方法來執行此操作。最終我們還希望從我們的開發工作站獲得JaCoCo報告,並將這些數字附加到我們的聲納頁面。
編輯1 感謝來提供這個線程我可以用下面的JVM選項來啓動我的多模塊應用的詳細信息:"-javaagent:${MAIN_DIR}/lib/jacocoagent.jar==destfile=/jacoco.exec,output=tcpserver,address=*"
在我詹金斯建設我有前步驟去如下: 一個調用目標jacocoReport的ant任務。 我爲此使用的build.xml具有以下代碼;
<taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
<classpath path="/opt/hudson/tools/jacocoant.jar"/>
</taskdef>
<target name="jacocoReport">
<jacoco:dump address="${jacoco.host}" port="${jacoco.port}" dump="true" reset="true" destfile="${jacocoReportFile}" append="false"/>
</target>
<target name="jacocoReset">
<jacoco:dump address="${jacoco.host}" port="${jacoco.port}" reset="true" destfile="${jacocoReportFile}" append="false"/>
<delete file="${jacocoReportFile}"/>
</target>
最後我有一個Maven構建步驟,呼籲聲納:聲納
這裏是相對於我的積分報告POM的部分;
<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
<sonar.jacoco.itReportPath>${WORKSPACE}/it-jacoco.exec</sonar.jacoco.itReportPath>
<sonar.language>java</sonar.language>
<sonar.branch>9.9.5</sonar.branch>
構建完成後,我的Sonar條目仍顯示爲0%,用於我的集成測試。但是當我使用相同的-jacoco.exec報告並使用Eclipse的Jacoco導入Coverage會話導入它時,我獲得了26%的覆蓋率。
最後,當我看着我的Jenkins構建日誌時,我看到以下內容;
Sensor JaCoCoItSensor...
Analysing /var/lib/jenkins/workspace/XXXXXX/it-jacoco.exec
No information about coverage per test.
Sensor JaCoCoItSensor done: 34 ms
好吧,聽起來不錯,但我踢我的Java應用程序使用ant和build.xml文件。而且我無法弄清楚把jacoco螞蟻變量放在哪裏。 _italic_ ** **粗體<目標名稱= 「開始」 描述= 「啓動任務管理器」> \t \t \t \t \t \t \t <類路徑REFID =」 project.class.path」 /> \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t
lbarriau
2014-09-29 15:08:23
您已經指定了一些JVM參數。只需添加另一個jvmarg標記,將值設置爲啓用jacoco。 – 2014-09-29 18:35:53
我想我明白了。最後一個整合問題。假設我使用TCPServer選項來遠程啓動報告生成...一旦生成報告,Sonar的最佳方法是什麼?我已經在Sonar中爲我的項目提供了一個來自Maven的項目。我可以將遠程生成的文件追加到maven中生成的文件中,如果是,如何? – lbarriau 2014-10-03 19:51:14