{"id":268,"date":"2010-07-07T09:01:57","date_gmt":"2010-07-07T09:01:57","guid":{"rendered":"http:\/\/www.scmgalaxy.com\/tutorials\/2010\/07\/07\/clover-and-maven-working-with-distributed-applications\/"},"modified":"2018-09-25T10:29:32","modified_gmt":"2018-09-25T10:29:32","slug":"clover-and-maven-working-with-distributed-applications","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/clover-and-maven-working-with-distributed-applications\/","title":{"rendered":"Clover and Maven working with Distributed Applications"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4444\" src=\"http:\/\/www.scmgalaxy.com\/tutorials\/wp-content\/uploads\/2010\/07\/clover-and-maven-working-wi.png\" alt=\"clover-and-maven-working-with-distributed-applications\" width=\"600\" height=\"400\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2010\/07\/clover-and-maven-working-wi.png 600w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2010\/07\/clover-and-maven-working-wi-300x200.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p class=\"MsoListParagraphCxSpFirst\" style=\"text-indent: -0.25in; margin: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1;\"><span style=\"color: #000000;\"><span style=\"mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;\"><span style=\"mso-list: Ignore;\"><span style=\"font-family: Calibri; font-size: small;\">1.<\/span><span style=\"font: 7pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><span style=\"mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;\"><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">Configure maven clover plugin.<\/span><\/span><\/span><\/span><\/p>\n<p class=\"MsoListParagraphCxSpMiddle\" style=\"text-indent: -0.25in; margin: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1;\"><span style=\"color: #000000;\"><span style=\"mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;\"><span style=\"mso-list: Ignore;\"><span style=\"font-family: Calibri; font-size: small;\">2.<\/span><span style=\"font: 7pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><span style=\"mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;\"><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">Build the all components with clover enabled.<\/span><\/span><\/span><\/span><\/p>\n<p class=\"MsoListParagraphCxSpMiddle\" style=\"text-indent: -0.25in; margin: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1;\"><span style=\"color: #000000;\"><span style=\"mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;\"><span style=\"mso-list: Ignore;\"><span style=\"font-family: Calibri; font-size: small;\">3.<\/span><span style=\"font: 7pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><span style=\"mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;\"><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">Deploy the clover enabled build to test server.<\/span><\/span><\/span><\/span><\/p>\n<p class=\"MsoListParagraphCxSpMiddle\" style=\"text-indent: -0.25in; margin: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1;\"><span style=\"color: #000000;\"><span style=\"mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;\"><span style=\"mso-list: Ignore;\"><span style=\"font-family: Calibri; font-size: small;\">4.<\/span><span style=\"font: 7pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><span style=\"mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;\"><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">Run the tests.<\/span><\/span><\/span><\/span><\/p>\n<p class=\"MsoListParagraphCxSpLast\" style=\"text-indent: -0.25in; margin: 0in 0in 10pt 0.5in; mso-list: l0 level1 lfo1;\"><span style=\"color: #000000;\"><span style=\"mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;\"><span style=\"mso-list: Ignore;\"><span style=\"font-family: Calibri; font-size: small;\">5.<\/span><span style=\"font: 7pt;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><span style=\"mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;\"><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">Create &amp; Review the Code Coverage Report.<\/span><\/span><\/span><\/span><\/p>\n<p class=\"MsoNoSpacing\" style=\"margin: 0in 0in 0pt;\"><strong style=\"mso-bidi-font-weight: normal;\"><span style=\"text-decoration: underline;\"><span style=\"color: #000000;\"><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">Configure Maven Clover Plugin<\/span><\/span><\/span><\/span><\/strong><\/p>\n<p class=\"MsoNoSpacing\" style=\"margin: 0in 0in 0pt;\"><span style=\"font-family: Calibri; color: #000000; font-size: small;\">Configure the maven plugin in pom.xml .If you are having multi module projects; you can configure the plugin in parent-pom instead of modifying each module\u2019s pom xml.<\/span><\/p>\n<p class=\"MsoNoSpacing\" style=\"margin: 0in 0in 0pt;\"><strong style=\"mso-bidi-font-weight: normal;\"><span style=\"text-decoration: underline;\"><span style=\"mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;\"><span style=\"color: #000000;\"><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\"><br \/>\nBuild all components with clover enabled.<\/span><\/span><\/span><\/span><\/span><\/strong><\/p>\n<p class=\"MsoNoSpacing\" style=\"margin: 0in 0in 0pt;\"><span style=\"mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;\"><span style=\"color: #000000;\"><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">Run the following command.<\/span><\/span><\/span><\/span><\/p>\n<p class=\"MsoNoSpacing\" style=\"margin: 0in 0in 0pt 0.75in;\"><strong style=\"mso-bidi-font-weight: normal;\"><span style=\"mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;\"><span style=\"font-family: Calibri; color: #000000; font-size: small;\">\u00a0<\/span><\/span><\/strong><\/p>\n<p class=\"MsoNoSpacing\" style=\"text-indent: 0.25in; margin: 0in 0in 0pt 0.75in;\"><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\"><strong style=\"mso-bidi-font-weight: normal;\"><span style=\"mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;\"><span style=\"color: #000000;\"><span style=\"mso-spacerun: yes;\">\u00a0 <\/span>\u201cmvn <span class=\"apple-style-span\"><span style=\"color: black;\">-U clover2:setup package clover2:aggregate<\/span><\/span><\/span><\/span><\/strong><span class=\"apple-style-span\"><span style=\"color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;\">\u201d<\/span><\/span><\/span><\/span><\/p>\n<p class=\"MsoNoSpacing\" style=\"margin: 0in 0in 0pt 0.75in;\"><strong style=\"mso-bidi-font-weight: normal;\"><span style=\"mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;\"><span style=\"font-family: Calibri; color: #000000; font-size: small;\">\u00a0<\/span><\/span><\/strong><\/p>\n<p class=\"MsoNoSpacing\" style=\"margin: 0in 0in 0pt;\"><strong style=\"mso-bidi-font-weight: normal;\"><span style=\"mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;\"><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\"><span style=\"color: #000000;\"><span style=\"mso-spacerun: yes;\">\u00a0\u00a0 <\/span><span style=\"mso-tab-count: 1;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span>If you got something like this<\/span><\/span><\/span><\/span><\/strong><\/p>\n<p class=\"MsoNoSpacing\" style=\"margin: 0in 0in 0pt 0.75in;\"><span style=\"mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;\"><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\"><span style=\"color: #000000;\">[INFO] Loaded from: C:\\Documents and Settings\\Administrator\\.m2\\repository\\com\\cenqua\\clover\\clover\\2.6.3\\clover-2.6.3.jar<\/span><\/span><\/span><\/span><\/p>\n<p class=\"MsoNoSpacing\" style=\"margin: 0in 0in 0pt 0.75in;\"><span style=\"mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;\"><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\"><span style=\"color: #000000;\">[INFO] Clover: Commercial License registered to ABC Corporation.<\/span><\/span><\/span><\/span><\/p>\n<p class=\"MsoNoSpacing\" style=\"margin: 0in 0in 0pt 0.75in;\"><span style=\"mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;\"><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\"><span style=\"color: #000000;\">[INFO] Creating new database at &#8216;C:\\p4_depot\\trunk\\4A\\target\\clover\\clover.db&#8217;.<\/span><\/span><\/span><\/span><\/p>\n<p class=\"MsoNoSpacing\" style=\"margin: 0in 0in 0pt 0.75in;\"><span style=\"mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;\"><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\"><span style=\"color: #000000;\">[INFO] Processing files at 1.5 source level.<\/span><\/span><\/span><\/span><\/p>\n<p class=\"MsoNoSpacing\" style=\"margin: 0in 0in 0pt 0.75in;\"><span style=\"mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;\"><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\"><span style=\"color: #000000;\">[INFO] Clover all over. Instrumented 5 files (1 package).<\/span><\/span><\/span><\/span><\/p>\n<p class=\"MsoNoSpacing\" style=\"margin: 0in 0in 0pt 0.75in;\"><span style=\"mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;\"><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\"><span style=\"color: #000000;\">[INFO] Elapsed time = 0.532 secs. (9.398 files\/sec, 812.03 srclines\/sec)<\/span><\/span><\/span><\/span><\/p>\n<p class=\"MsoNoSpacing\" style=\"text-indent: 0.5in; margin: 0in 0in 0pt;\"><strong style=\"mso-bidi-font-weight: normal;\"><em><span style=\"mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;\"><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\"><span style=\"color: #000000;\">Congratulation, you get clover work with your source!!<\/span><\/span><\/span><\/span><\/em><\/strong><\/p>\n<p class=\"MsoNoSpacing\" style=\"margin: 0in 0in 0pt;\"><strong style=\"mso-bidi-font-weight: normal;\"><span style=\"mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-bidi-font-style: italic;\"><span style=\"font-family: Calibri; color: #000000; font-size: small;\">\u00a0<\/span><\/span><\/strong><\/p>\n<p class=\"MsoNoSpacing\" style=\"margin: 0in 0in 0pt;\"><strong style=\"mso-bidi-font-weight: normal;\"><span style=\"text-decoration: underline;\"><span style=\"mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-bidi-font-style: italic;\"><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\"><span style=\"color: #000000;\">Deploy the clover enabled build to test server.<\/span><\/span><\/span><\/span><\/span><\/strong><\/p>\n<p class=\"Default\" style=\"margin: 0in 0in 0pt;\"><span style=\"color: #000000;\">Deploy the Clover enabled build to the server. The same process as normal <\/span><\/p>\n<p class=\"Default\" style=\"margin: 0in 0in 0pt;\"><span style=\"color: #000000;\">Copy the Clover registry file to the appropriate directory on each of the test servers <\/span><\/p>\n<p class=\"Default\" style=\"margin: 0in 0in 0pt;\"><span style=\"color: #000000;\">\u00a0<\/span><\/p>\n<p class=\"Default\" style=\"margin: 0in 0in 0pt;\"><span style=\"color: #000000;\">The registry file is the DB file create during compile, defined by <em>initstring <\/em>parametersclover\u2010setup task, this needs to occur after the Clover build is complete, and before you run your tests <\/span><\/p>\n<p class=\"Default\" style=\"margin: 0in 0in 0pt;\"><span style=\"color: #000000;\">\u00a0<\/span><\/p>\n<p class=\"Default\" style=\"margin: 0in 0in 0pt;\"><span style=\"color: #000000;\">Background: the Clover initstring <\/span><\/p>\n<p class=\"Default\" style=\"margin: 0in 0in 0pt;\"><span style=\"color: #000000;\">\u00a0<\/span><\/p>\n<p class=\"Default\" style=\"margin: 0in 0in 0pt;\"><span style=\"color: #000000;\">FileName: xxx.db <\/span><\/p>\n<p class=\"Default\" style=\"margin: 0in 0in 0pt;\"><span style=\"color: #000000;\">At build time, Clover constructs a registry of your source code, and writes it to a file at the location specified in the Clover initstring. When Clover\u2010 instrumented code is executed (e.g. by running a suite of unit tests), Clover looks in the same location for this registry file to initialise itself. Clover then records coverage data and writes coverage recording files next to the registry file during execution<\/span><\/p>\n<p class=\"MsoNormal\" style=\"line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;\"><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\"><strong><span style=\"color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;\">Notes: gives the folder contains the registry file full control permissions <\/span><\/strong><\/span><\/span><\/p>\n<p class=\"MsoNormal\" style=\"line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;\"><span style=\"color: black; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;\"><span style=\"font-family: Calibri; font-size: small;\">\u00a0<\/span><\/span><\/p>\n<p class=\"Default\" style=\"margin: 0in 0in 0pt;\"><em style=\"mso-bidi-font-style: normal;\"><span style=\"color: #000000;\">Recommended Permissions <\/span><\/em><\/p>\n<p class=\"Default\" style=\"text-align: justify; margin: 0in 0in 0pt;\"><span style=\"color: #000000;\">Clover requires access to the Java system properties for runtime configurations, as well as read write access to areas of the file system to read the Clover coverage database and to write coverage information. Clover also uses a shutdown hook to ensure that it flushes any as yet unflushed coverage information to disk when Java exits. To support these requirements, the following security <\/span><\/p>\n<p class=\"Default\" style=\"text-align: justify; margin: 0in 0in 0pt;\"><span style=\"color: #000000;\">permissions are recommended: <\/span><\/p>\n<p class=\"Default\" style=\"text-align: justify; margin: 0in 0in 0pt 1in;\"><em style=\"mso-bidi-font-style: normal;\"><span style=\"color: #000000;\">\u00a0<\/span><\/em><\/p>\n<p class=\"Default\" style=\"text-align: justify; margin: 0in 0in 0pt 1in;\"><em style=\"mso-bidi-font-style: normal;\"><span style=\"color: #000000;\">grant codeBase &#8220;file:\/path\/to\/clover.jar&#8221; { <\/span><\/em><\/p>\n<p class=\"Default\" style=\"text-align: justify; margin: 0in 0in 0pt 1in;\"><em style=\"mso-bidi-font-style: normal;\"><span style=\"color: #000000;\">permission java.util.PropertyPermission &#8220;*&#8221;, &#8220;read&#8221;; <\/span><\/em><\/p>\n<p class=\"Default\" style=\"text-align: justify; margin: 0in 0in 0pt 1in;\"><em style=\"mso-bidi-font-style: normal;\"><span style=\"color: #000000;\">permission java.io.FilePermission &#8220;&lt;&gt;&#8221;, &#8220;read, write&#8221;; <\/span><\/em><\/p>\n<p class=\"Default\" style=\"text-align: justify; margin: 0in 0in 0pt 1in;\"><em style=\"mso-bidi-font-style: normal;\"><span style=\"color: #000000;\">permission java.lang.RuntimePermission &#8220;shutdownHooks&#8221;; <\/span><\/em><\/p>\n<p class=\"Default\" style=\"text-align: justify; margin: 0in 0in 0pt 1in;\"><em style=\"mso-bidi-font-style: normal;\"><span style=\"color: #000000;\">} <\/span><\/em><\/p>\n<p class=\"Default\" style=\"margin: 0in 0in 0pt;\"><em style=\"mso-bidi-font-style: normal;\"><span style=\"color: #000000;\">\u00a0<\/span><\/em><\/p>\n<p class=\"Default\" style=\"margin: 0in 0in 0pt;\"><em style=\"mso-bidi-font-style: normal;\"><span style=\"color: #000000;\">Grant Permissions to clover.jar <\/span><\/em><\/p>\n<p class=\"Default\" style=\"text-indent: 0.5in; margin: 0in 0in 0pt;\"><span style=\"color: #000000;\">Edit the java.policy file of the java runtime on the test server <\/span><\/p>\n<p class=\"Default\" style=\"text-indent: 0.5in; margin: 0in 0in 0pt 0.5in;\"><span style=\"color: #000000;\">%JAVA_HOME%\/jre\/lib\/security<\/span><\/p>\n<p class=\"Default\" style=\"margin: 0in 0in 0pt;\"><span style=\"color: #000000;\">\u00a0<\/span><\/p>\n<p class=\"Default\" style=\"margin: 0in 0in 0pt 0.5in;\"><span style=\"color: #000000;\">Copy clover.jar and license file to the java runtime class path of the test servers <\/span><\/p>\n<p class=\"Default\" style=\"text-indent: 0.5in; margin: 0in 0in 0pt;\"><span style=\"color: #000000;\">%JAVA_HOME%\/jre\/lib\/ext <\/span><\/p>\n<p class=\"Default\" style=\"margin: 0in 0in 0pt;\"><span style=\"color: #000000;\">\u00a0<\/span><\/p>\n<p class=\"Default\" style=\"margin: 0in 0in 0pt;\"><span style=\"color: #000000;\">\u00a0<\/span><\/p>\n<p class=\"Default\" style=\"margin: 0in 0in 0pt;\"><strong style=\"mso-bidi-font-weight: normal;\"><span style=\"text-decoration: underline;\"><span style=\"color: #000000;\">Run the test suite<\/span><\/span><\/strong><\/p>\n<p class=\"Default\" style=\"margin: 0in 0in 0pt;\"><span style=\"color: #000000;\">Run the test suite as normal. Either automation test case or manual test case.<\/span><\/p>\n<p class=\"Default\" style=\"margin: 0in 0in 0pt;\"><span style=\"color: #000000;\">\u00a0<\/span><\/p>\n<p class=\"Default\" style=\"margin: 0in 0in 0pt;\"><strong style=\"mso-bidi-font-weight: normal;\"><span style=\"text-decoration: underline;\"><span style=\"color: #000000;\">Create Code Coverage Report<\/span><\/span><\/strong><\/p>\n<p class=\"Default\" style=\"margin: 0in 0in 0pt;\"><span style=\"color: #000000;\">Copy the coverage recording files to build machine. <\/span><\/p>\n<p class=\"Default\" style=\"margin: 0in 0in 0pt;\"><span style=\"color: #000000;\">\u00a0<\/span><\/p>\n<p class=\"Default\" style=\"text-align: justify; margin: 0in 0in 0pt;\"><span style=\"color: #000000;\">Once test execution is complete, you will need to copy the coverage recording files from each remote machine to the initstring path on the build machine in order to generate coverage reports. <\/span><\/p>\n<p class=\"Default\" style=\"margin: 0in 0in 0pt;\"><span style=\"color: #000000;\">\u00a0<\/span><\/p>\n<p class=\"Default\" style=\"margin: 0in 0in 0pt;\"><span style=\"color: #000000;\">Background: CoverageRecording Files <\/span><\/p>\n<p class=\"Default\" style=\"margin: 0in 0in 0pt;\"><span style=\"color: #000000;\">\u00a0<\/span><\/p>\n<p class=\"Default\" style=\"text-align: justify; margin: 0in 0in 0pt;\"><span style=\"color: #000000;\">Filename:xxx.dbHHHHHHH_TTTTTTTTTT or clover.dbHHHHHHH_TTTTTTTTTT.1 (where HHHHHHH and TTTTTTTTTT are both hex strings) <\/span><\/p>\n<p class=\"Default\" style=\"text-align: justify; margin: 0in 0in 0pt;\"><span style=\"color: #000000;\">CoverageRecording files contain actual coverage data. When running instrumented code, Clover creates one or more Coverage Recorders. Each Coverage Recorder will write one CoverageRecording file. The number of Coverage Recorders created at runtime depends the nature of the application you are Clovering. In general a new Coverage Recorder will be created for each new ClassLoader instance that loads a Clovered class file. The first hex number in the filename (HHHHHHH) is a unique number based on the recording context. The second hex number (TTTTTTTTTT) is the timestamp (ms since epoch) of the creation of the Clover Recorder. CoverageRecording files are named this way to try to minimise the chance of a name clash. While it is theoretically possible that a name clash could occur, in practice the chances are very small. <\/span><\/p>\n<p class=\"Default\" style=\"text-align: justify; margin: 0in 0in 0pt;\"><span style=\"color: #000000;\">CoverageRecording files are <strong>written <\/strong>during the execution of Clover\u2010instrumented code. CoverageRecording files are <strong>read <\/strong>during report generation or coverage browsing. <\/span><\/p>\n<p class=\"Default\" style=\"margin: 0in 0in 0pt;\"><span style=\"color: #000000;\">\u00a0<\/span><\/p>\n<p class=\"Default\" style=\"margin: 0in 0in 0pt;\"><span style=\"color: #000000;\">Run the generating report goal to create the report. <\/span><\/p>\n<p class=\"Default\" style=\"margin: 0in 0in 0pt;\"><strong style=\"mso-bidi-font-weight: normal;\"><span style=\"color: #000000;\"><span style=\"mso-tab-count: 2;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span>\u201cmvn clover2:clover\u201d<\/span><\/strong><\/p>\n<p class=\"Default\" style=\"margin: 0in 0in 0pt;\"><strong style=\"mso-bidi-font-weight: normal;\"><span style=\"mso-tab-count: 1;\"><span style=\"color: #000000;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Configure maven clover plugin. 2.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Build the all components with clover enabled. 3.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Deploy the clover enabled build to test server. 4.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Run the tests. 5.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Create &amp; Review the Code Coverage Report. Configure Maven Clover Plugin Configure the maven plugin in pom.xml .If you are having multi module projects; you can configure the&#8230;<\/p>\n","protected":false},"author":1,"featured_media":4444,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","_joinchat":[],"footnotes":""},"categories":[29],"tags":[91,1045,4309,610,254,3357,4307,1122,4310,919,161,4308,593,1668,104],"class_list":["post-268","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-maven","tag-build","tag-clover","tag-clover-and-maven-working-with-distributed-applications","tag-code-coverage","tag-configure","tag-deploy","tag-distributed-applications","tag-guide","tag-how-clover-and-maven-works-with-distributed-applications","tag-instructions","tag-maven","tag-maven-clover-plugin","tag-process","tag-run","tag-tutorials"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/268","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=268"}],"version-history":[{"count":1,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/268\/revisions"}],"predecessor-version":[{"id":4446,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/268\/revisions\/4446"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media\/4444"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=268"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=268"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=268"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}