java - Dynamically set Maven Surefire JVM classpath -
i'm trying add jvm classpath argument when running our maven unit tests adding following maven arguments, "dir" replaced desired clasaspath.
maven_opts = -cp "dir"
this correctly get's added java arguments
yet "dir" never correctly added classpath. desired file in classpath never found, , missing when printing out classpath with
classloader cl = classloader.getsystemclassloader(); url[] urls = ((urlclassloader)cl).geturls();
there's difference between jvm run maven , jvm in use when running tests.
the surefire plugin spawn own jvm run test case(s). default, include following on jvm's classpath:
- your project's classes directory
- your project's test-classes directory
- your project's dependencies.
if have understood question correctly want add directory classpath jvm running test(s). if so, can add additional classpath entry so:
<plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-surefire-plugin</artifactid> <version>2.20</version> <configuration> <additionalclasspathelements> <additionalclasspathelement>path/to/your/additional/directory</additionalclasspathelement> </additionalclasspathelements> </configuration> </plugin>
more details here.
if want dynamically change classpath used surefire jvm via command line parameter (as mention of maven_opts implies) define additionalclasspathelement
...
<additionalclasspathelement>${additionalclasspathdir}</additionalclasspathelement>
... , invoke maven this:
mvn test -dadditionalclasspathdir=path/to/your/additional/directory
Comments
Post a Comment