What you really want is to attach additional artifacts to your build with an "emma-instrumented" classifier...
[Random but relevant]This will probably break the maven-ear-plugin on your build... ;-) [/Random but relevant] My understanding is that issues with instrumented jars using classifiers and forked builds and fun like that is why clover-maven-plugin is less than perfect... I know that there are changes to maven which will make the coverage situation nicer... I suspect people are holding off to see what they are -Stephen 2009/3/18 COURCY Michael <[email protected]> > I see, well unless you instrument your local repository ... I don't really > see a simple and *clean* solution. > > Emma offer an option to instrument code by providing its own classloader, > but it means you have to inteact with classworld maven classloader and thus > write a plugin for that : > > http://maven.apache.org/guides/mini/guide-maven-classloading.html > > Should be possible but there's a real work to do. > > -----Message d'origine----- > De : [email protected] [mailto:[email protected]] > Envoyé : mercredi 18 mars 2009 16:48 > À : Maven Users List > Objet : Re: how to EMMA-instrument dependencies > > Thank you, but this does not really solve my problem. The problem is not > that I cannot instrument dependency JARs. The problem is I cannot cleanly > get instrumented JARs into the unit test classpath. > > Vasiliy > > COURCY Michael wrote: > > Hi > > > > From my experience with emma I use a ant call after the compilation > phase. > > > > Ant is going much more power than the emma plugin > > > > <!-- > > pour instrumenter l'appli web > > mvn install -P instrument > > --> > > <profile> > > <id>instrument</id> > > <build> > > <plugins> > > <plugin> > > > <artifactId>maven-antrun-plugin</artifactId> > > <executions> > > <execution> > > <phase>process-classes</phase> > > <configuration> > > <tasks> > > <ant > antfile="${basedir}/instrument_for_coverage.xml"> > > > <target name="instrument"/> > > > </ant> > > </tasks> > > </configuration> > > <goals> > > <goal>run</goal> > > </goals> > > </execution> > > </executions> > > </plugin> > > </plugins> > > </build> > > </profile> > > > > And use the overwrite mode in the ant, then only your class are going to > be instrumended if you active this option : > > > > <target name="instrument" depends="init"> > > > > <echo>Instrumenting the classes</echo> > > <emma enabled="${emma.enabled}" > > > <instr instrpathref="ServeurJava.classpath" > > metadatafile="${metadatafile}" > > merge="true" > > mode="overwrite" > > > > > <filter value="${emma.filter}" /> > > </instr> > > </emma> > > > > </target> > > > > Thus running > > > > Mvn package -P instrument > > > > produce an instrumented war > > > > And > > > > Mvn package > > > > Produce a regular one > > > > Good luck, emma rocks !! > > > > > > > > > > > > -----Message d'origine----- > > De : [email protected] [mailto:[email protected]] Envoyé : > > mercredi 18 mars 2009 15:32 À : [email protected] Objet : how to > > EMMA-instrument dependencies > > > > Hi, > > > > I have a Maven 2 project that depends on a number of other Maven 2 > projects that are built locally and installed into the local repository. > > I need to instrument some of the dependency JARs with the EMMA > > coverage tool and have Maven run unit tests against instrumented JARs > > rather than the original dependencies. The emma-maven-plugin > > (http://mojo.codehaus.org/emma-maven-plugin) does not seem to be of much > help as it does not seem to support this scenario. > > > > Of course, it would be ideal if the emma-maven-plugin had support for > this. In fact, the plugin has an 'instrumentationPaths' parameter which can > be used to instrument classes from arbitrary directories; so I think > dependencies can be copied, unpacked, instrumented this way and passed to > maven-surefire-plugin via the 'classesDirectory' parameter; but in this case > both the instrumented classes and original dependencies both appear on the > test classpath, which sounds wrong. > > > > Actually, I can bypass emma-maven-plugin and run EMMA instrumentor via > exec-maven-plugin, but again, it looks like the only way to pass the > instrumented classes to surefire is via the 'classesDirectory' or > 'additionalClasspathElements' parameter, which is the same problem as above, > which makes me think this is not solely emma-maven-plugin's problem (hence > posting to this list). > > > > What would be the right Maven way to achieve the goal? I am new to Maven > so I am sorry if I am missing something obvious. I spent several days trying > to find a solution, to no success. > > > > In fact, I have some control over the dependency projects so I think I > can build them so that the resulting JARs will contain instrumented classes > (or I can instrument JARs separately and 'install:install-file' > > them as separate components), but this is undesirable. > > > > I hope I am making sense. > > > > Thank you, > > Vasiliy > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [email protected] > > For additional commands, e-mail: [email protected] > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [email protected] > > For additional commands, e-mail: [email protected] > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >
