clover runs two lifecycles, one normal and one forked. The default non-clover workspace is ${project.build.directory} and the default clover workspace is ${project.build.directory}/clover. I have maven plugins that will write to the workspace in order to get files into certain artifacts. For example, one plugin writes to the ${project.build.directory}/classes/ directory to include the file in the jar and another writes to ${project.build.directory}/${project.build.finalName} to have files included in the assembly package. In order to get these files written to both places I have to set up plugin executions twice; once to write to ${project.build.directory} and once to write to ${project.build.directory}/clover. Is there a better way to do this? Originally I epxected that the clover fork would just reset ${project.build.directory} to evaluate to the clover output directory and then I could just use that parameter. But it does not seem to work.
Which version of Maven do you use? 2.x or 3.x? Do you want to use ${project.build.directory} in the pom.xml or access it from your plugin?
If case you use Maven 3.x and ${project.build.directory} in the pom.xml then it won't work. A reason is that the way how properties are evaluated have changed in Maven 3. Their values are not being refreshed for the forked lifecycle (as Maven 2 does) in pom.xml. However, you can still access valid value in a forked lifecycle from the mojo. You can find an examplary "hack" here.
If your case is different, then please give me a little bit more details so that I could investigate it.
Cheers
Marek
BTW: the name of the forked lifecycle ("clover") had never changed since the beginning so it's quite safe to assume that the location is "${project.build.directory}/clover" :-)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.