Ich stieß gerade auf ein ähnliches Problem und ich wollte eine vollständige Antwort für andere schreiben, die auf diese Frage stoßen könnten.
Auch wenn die Frage nicht über pom.xml ist aber über Kommandozeile - es gibt nicht an, wie das gleiche so mit pom.xml zu tun, hier ist es
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<goals>
<goal>java</goal>
</goals>
<configuration>
<mainClass>myPackage.MyMain</mainClass>
<systemProperties>
<property>
<key>myKey</key>
<value>myValue</value>
</property>
</systemProperties>
</configuration>
</plugin>
</plugins>
</build>
Für die Kommandozeile - ich glaube, Sean Patrick Floyd's
Antwort ist gut - jedoch, wenn Sie etwas bereits in Ihrer pom.xml definiert haben, wird es überschrieben. So
läuft
mvn exec:java -DmyKey=myValue
sollte auch für Sie arbeiten.
Sie sollten auch beachten, dass die exec plugin's documentations Staaten die folgende
A list of system properties to be passed.
Note: as the execution is not forked, some system properties required
by the JVM cannot be passed here.
Use MAVEN_OPTS or the exec:exec instead. See the user guide for more information.
So kann man auch so etwas wie dieses
export MAVEN_OPTS=-DmyKey=myValue
mvn exec:java
tun, und es sollte die gleiche Art und Weise arbeiten.
ich -Dexec.args dachte funktioniert, ist für Argumente an die Haupt-Klasse übergeben. – Alexandru
Ja, ich habe mich geirrt. Entschuldigung, ich habe meine Antwort aktualisiert. '' und '' machen beide intern ziemlich dasselbe. –
Dies funktioniert nicht für mich :( –