Unfortunately jacoco-maven-plugin is of no help in your scenario.

"report-aggregate" as of today is a best trade off that we can provide 
considering the way Maven works, information that is needed for generation 
of report and most common usage scenarios.

I'd be glad to understand how you manage to do this with 
clover-maven-plugin, but unfortunately links that you provide do not 
contain enough technical information about the way it actually works. Also 
digging in this direction is complicated by the fact that Clover is 
commercial product.

Having said all this bad news, there are still some good ones: I believe 
that there is a way for you to proceed with integration of JaCoCo. 
Generation of report requires 3 components - exec file, class files and 
source files. Shouldn't be hard to collect all this information knowing the 
layout of your projects and invoke JaCoCo Ant Task for report generation 
via maven-antrun-plugin.

Hope this helps.

Regards,
Evgeny

On Tuesday, December 6, 2016 at 5:21:33 PM UTC+1, Vincent Massol wrote:
>
>
> > On 6 Dec 2016, at 16:18, Vincent Massol <[email protected]> wrote: 
> > 
> > Hi Evgeny, 
> > 
> >> On 3 Dec 2016, at 06:22, Evgeny Mandrikov <[email protected]> wrote: 
> >> 
> >> Maybe I don't understand something, but as long as class files on disk 
> match class files used at runtime (see 
> http://www.eclemma.org/jacoco/trunk/doc/classids.html) you should be able 
> to achieve what you want as following: 
> >> 
> >> cd repo1 && mvn clean jacoco:prepare-agent install 
> -Djacoco.destFile=/tmp/jacoco.exec -Djacoco.append=false 
> >> cd repo2 && mvn clean jacoco:prepare-agent install 
> -Djacoco.destFile=/tmp/jacoco.exec -Djacoco.append=true 
> >> cd repo1 && mvn jacoco:report -Djacoco.dataFile=/tmp/jacoco.exec 
> >> cd repo2 && mvn jacoco:report -Djacoco.dataFile=/tmp/jacoco.exec 
> > 
> > Thanks but my goal is to generate a single aggregated Jacoco report for 
> the 2 repos. 
> > 
> > Also note that when I mention repo1 and repo2, they each contain 
> multiple maven projects and the sources are thus scattered in various maven 
> modules. 
> > 
> > In short, there are tests located in repo2 that end up calling code 
> whose sources are in repo1 and I’d like the test coverage to take that into 
> account. 
> > 
> > More precisely, when I build the maven projects from repo1, the binaries 
> are put in my local maven repo. When I build the maven projects from repo2, 
> they have maven dependencies which are honored from my local repo. 
> > 
> > If I understand correctly, the jacoco exec file contains classids and 
> this looks correct since the classes should have the same id when loaded 
> from tests in repo1 or from tests in repo2. 
> > 
> > However the issues seems to be to find out how to tell jacoco:report 
> where to find the java sources to construct the report. Right? 
> > 
> > Any idea? 
>
> Note that using report-aggregate wouldn’t work for me since it means 
> having a single maven reactor (just checked the source code), which I don’t 
> have. 
>
> Also I mentioned repo1 and repo2 in my original mail as an example, but 
> this for the xwiki project and I have 4 large repos in practice, and even 
> if I could have a single reactor job would never have enough memory (close 
> to ten hours of overall build…). 
>
> Last but not least, it’s not possible to build the whole of XWiki as a 
> single reactor since there are some maven voodoo in some places that don’t 
> work in a single reactor execution... 
>
> So I need to find a solution that allows to accumulate the test coverage 
> data in a single exec file and then somehow have jacoco find all the 
> sources to be able to construct the report. 
>
> I’m not overly confident that this can be achieved and that’s sad. Right 
> now I’m able to do this with Clover (
> http://dev.xwiki.org/xwiki/bin/view/Community/Testing#HUsingClover-1) but 
> I’d have really liked to use an open source tool and be able to do it with 
> jacoco :) 
>
> Thanks 
> -Vincent 
>
> > Thanks again for your help, very appreciated! 
> > -Vincent 
> > 
> >> On Friday, December 2, 2016 at 6:29:56 PM UTC+1, Vincent Massol wrote: 
> >> Hi Evgeny, 
> >> 
> >>> On 02 Dec 2016, at 17:30, Evgeny Mandrikov <[email protected]> 
> wrote: 
> >>> 
> >>> Hi, 
> >>> 
> >>> Name of a property for "report" is "jacoco.dataFile" and not 
> "jacoco.destFile" - see 
> http://www.eclemma.org/jacoco/trunk/doc/report-mojo.html#dataFile 
> >>> However this property was added in version 0.7.8 that is not yet 
> released (presented only in snapshot version) - see 
> http://www.eclemma.org/jacoco/trunk/doc/changes.html 
> >>> But prior to 0.7.8 you can define your own property as following: 
> >>> <plugin> 
> >>>  <groupId>org.jacoco</groupId> 
> >>>  <artifactId>jacoco-maven-plugin</artifactId> 
> >>>  <configuration> 
> >>>    <dataFile>${jacoco.dataFile}</dataFile> 
> >>>  </configuration> 
> >>> </plugin> 
> >> 
> >> Thanks a lot for your answer. I’ve tried your solution and it kind of 
> worked since I was able to generate a report but the report is empty. Is it 
> because the project where the report is generated from also needs to 
> contain the sources matching the generated data in jacoco.exec? If so, then 
> I don’t see how I could achieve the use case I described. 
> >> 
> >> Would you have any idea about how to achieve it? 
> >> 
> >> Thanks again 
> >> -Vincent 
> >> 
> >>> 
> >>> HTH, 
> >>> Evgeny 
> >>> 
> >>> On Friday, December 2, 2016 at 1:02:41 PM UTC+1, [email protected] 
> wrote: 
> >>> Hi guys, 
> >>> I have the following setup: 
> >>> - github repo 1 (https://github.com/xwiki/xwiki-commons) 
> >>> - github repo 2 (https://github.com/xwiki/xwiki-rendering) 
> >>> 
> >>> I'd like to have a report that combines all the coverage generated by 
> all tests from all modules (including coverage generated by modules on 
> other modules) for both repos. 
> >>> 
> >>> So I execute the following: 
> >>> - on repo1: mvn clean jacoco:prepare-agent install 
> -Djacoco.destFile=/tmp/jacoco.exec -Djacoco.append=false 
> >>> - on repo2: mvn clean jacoco:prepare-agent install 
> -Djacoco.destFile=/tmp/jacoco.exec -Djacoco.append=true 
> >>> 
> >>> So this should generate a combined jacoco.exec that contains 
> everything. 
> >>> 
> >>> However I can't find a way to generate a report out the exec file. 
> >>> 
> >>> If I run "mvn jacoco:report -Djacoco.destFile=/tmp/jacoco.exec -N" 
> then I get "Skipping JaCoCo execution due to missing execution data file.". 
> >>> 
> >>> This suggest that I may not be using this properly. 
> >>> 
> >>> However I can't find a way to do what I want. 
> >>> 
> >>> Any idea? 
> >>> 
> >>> PS: Thanks a lot for this great tool! 
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"JaCoCo and EclEmma Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jacoco/fff25624-6127-4c35-80d3-2993dad8adb4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to