We use the command line to pass on system properties to the Java virtual machine when running our Hudson builds on a Linux box. It used to work quite well in 2.0.9 by since we upgraded to 2.1.0 it has stopped working altogether. The system properties just never make it to the Java virtual machine.
I have created a small test project and indeed it does not work at all.
This should work just fine with Maven 2.0.9:
mvn2.0.9 -Dsystem.test.property=test test
But this will fail:
mvn2.1 -Dsystem.test.property=test test
The Java code simply does this
assertTrue( System.getProperty("system.test.property") != null);
I don't think this is a problem in either Maven or Surefire plug-in. Else the surefire is behaving differently. It looks like now, when Surefire forks the JVM, will not take all the system properties from the parent JVM.
That's why you should pass whatever system properties you want for the tests, using argLine. So, both these should work
mvn2.1 -Dsystem.test.property=test test -DforkMode=never
or
mvn2.1 test -DargLine="-Dsystem.test.property=test"