I have been trying to get jacoco to work as described here (using bnd 6.0.0).
After some hours of experimenting I found that the only way to get this working is by putting the opening quote in front:
-runvm.coverage: \
"-javaagent:${repo;org.jacoco:org.jacoco.agent:jar:runtime;latest}=destfile=${basedir}/bin/jacoco.exec,append=false,includes=de.mnl.osgi.*"
We need the quotes because of the commas (removing them makes “append=false
” an independent argument passed to the JVM, which responds that his is not a valid class name). But -javaagent
is not a bnd instruction in this context, it’s an argument passed to the VM. I assume the bnd parser leaves the quotes in place and this results in -javaagent:"<file>=<agent args>"
being passed to the JVM which makes the JVM argument evaluator assume that the first double quote is part of the agent jar’s file name.