I want to use the exec:java plugin to invoke the main class from command line. I can pass arguments from the command line using -Dexec.args="arg0 arg1 arg2"
, I don't know how to pass system properties. I tried '-Dexec.systemProperties="key=value"` but with no effect.
pom.xml
looks like this:
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <configuration> <mainClass>ibis.structure.Structure</mainClass> </configuration> </plugin>
To provide System Properties to the tests from command line, you just need to configure maven surefire plugin and use -D{systemproperty}={propertyvalue} parameter in commandline. Run Single Test with Maven : $ mvn test -Dtest=MessageUtilTest#msg_add_test -Dmy_message="Hello, Developer!"
mvn exec:java is a goal from the exec plugin for maven. It lets you specify a main class to execute (see pom. xml). This lets you avoid having to figure out the proper java command to run and classpath arguments and the like.
Try following for me it works properly
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <configuration> <mainClass>ibis.structure.Structure</mainClass> <systemProperties> <systemProperty> <key>someKey</key> <value>someValue</value> </systemProperty> </systemProperties> </configuration> </plugin>
There is no way to set the <systemProperties>
parameter on the command line.
However, since exec:java
is not forked, you can just pass a system property to maven and it will be picked up by exec:java
as well.
mvn -Dkey=value exec:java -Dexec.mainClass=com.yourcompany.yourclass \ -Dexec.args="arg1 arg2 arg3"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With