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]
