I would like to configure the maven sure fire plugin to start the unit testing jvm with the argument for a java agent. The agent jar file is being obtained from maven central so I want maven to automatically figure out the path to the agent's jar file.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
<configuration>
<argLine>-javaagent: How to reference an agent jar that is a depedency </argLine>
</configuration>
</plugin>
How can I refer to the path to the agent which is a dependency of the project using maven co-ordinates?
You can copy one of your needed jars to a target destination. Then refer to that jar on your command line.
Here is an example (using log4j which is NOT a valid agent jar but just to show an example):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.5.1</version>
<executions>
<execution>
<id>copy-agent</id>
<phase>process-test-classes</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
<outputDirectory>${project.build.directory}/agents</outputDirectory>
<destFileName>my-special-agent.jar</destFileName>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
<configuration>
<argLine>-javaagent:${project.build.directory}/agents/my-special-agent.jar</argLine>
</configuration>
</plugin>