run mvn java maven-2 exec-maven-plugin

run - mvn exec java



¿Cómo pasar a systemProperties al invocar el complemento exec: java en maven? (3)

Quiero usar el complemento exec: java para invocar la clase principal desde la línea de comandos. Puedo pasar argumentos desde la línea de comandos usando -Dexec.args="arg0 arg1 arg2" , no sé cómo pasar las propiedades del sistema. Intenté ''-Dexec.systemProperties = "key = value" `pero sin efecto.

pom.xml tiene este aspecto:

<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <configuration> <mainClass>ibis.structure.Structure</mainClass> </configuration> </plugin>


Acabo de encontrar un problema similar y quería escribir una respuesta completa para otros que pudieran encontrar esta pregunta.

A pesar de que la pregunta no es sobre pom.xml sino sobre la línea de comandos, no indica cómo hacer lo mismo con pom.xml, así que aquí está

<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>

Para la línea de comandos, creo que Sean Patrick Floyd''s respuesta de Sean Patrick Floyd''s es buena, sin embargo, si ya tienes algo definido en tu pom.xml, lo anulará.

Asi que corriendo

mvn exec:java -DmyKey=myValue

También debería trabajar para usted.

También debe tener en cuenta que la parameter establece lo siguiente

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.

Así que también puedes hacer algo como esto.

export MAVEN_OPTS=-DmyKey=myValue mvn exec:java

y debería funcionar de la misma manera.


Intenta seguirme para que funcione correctamente.

<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>


No hay forma de establecer el parameter <systemProperties> en la línea de comandos.

Sin embargo, dado que exec:java no está bifurcado, solo puede pasar una propiedad del sistema a maven y también será recogido por exec:java .

mvn -Dkey=value exec:java -Dexec.mainClass=com.yourcompany.yourclass / -Dexec.args="arg1 arg2 arg3"