po prostu wpadł na podobny problem i chciałem napisać pełną odpowiedź na inne, które mogą zetknąć się z tym pytaniem.
Nawet nie chodzi o to o pom.xml ale o linii poleceń - nie, w jaki sposób zrobić to samo z pom.xml tak tutaj jest
<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>
Dla linii poleceń - myślę Sean Patrick Floyd's
odpowiedź jest dobra - jednak jeśli masz już coś zdefiniowanego w twoim pom.xml, to go zastąpisz.
Tak działa
mvn exec:java -DmyKey=myValue
powinien również pracować dla Ciebie.
Należy również pamiętać, że exec plugin's documentations stany następujące
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.
Więc można też zrobić coś takiego
export MAVEN_OPTS=-DmyKey=myValue
mvn exec:java
i powinien działać w ten sam sposób.
myślałem -Dexec.args jest dla argumentów przekazanych do głównej klasy. – Alexandru
tak, myliłem się. przepraszam, zaktualizowałem swoją odpowiedź. '' i '' oba robią dokładnie to samo wewnętrznie. –
To nie działa dla mnie :( –