run plugin mvn example java maven exec-maven-plugin

plugin - maven exec java arguments example



Maven y Java: los parĂ¡metros ''mainClass'' para goal org.codehaus.mojo: exec-maven-plugin: 1.2.1: java faltan o no son vĂ¡lidos (5)

Asegúrese de ejecutar mvn exec:java desde dentro del mismo directorio donde reside su pom.xml con la configuración exec.

Mi proyecto de Java EE se construye bien, pero cuando intento ejecutarlo, obtengo el siguiente error:

gert@gert-VirtualBox:~/workspace/CDBOOKSTORE$ mvn exec:java [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building CDBOOKSTORE 0.0.1-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] >>> exec-maven-plugin:1.2.1:java (default-cli) @ CDBOOKSTORE >>> [INFO] [INFO] --- maven-dependency-plugin:2.8:copy (default) @ CDBOOKSTORE --- [INFO] [INFO] <<< exec-maven-plugin:1.2.1:java (default-cli) @ CDBOOKSTORE <<< [INFO] [INFO] --- exec-maven-plugin:1.2.1:java (default-cli) @ CDBOOKSTORE --- [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2.505s [INFO] Finished at: Fri Nov 08 14:01:40 EST 2013 [INFO] Final Memory: 9M/21M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2.1:java (default-cli) on project CDBOOKSTORE: The parameters ''mainClass'' for goal org.codehaus.mojo:exec-maven-plugin:1.2.1:java are missing or invalid -> [Help 1]

Pero en mi archivo pom.xml (que he editado siguiendo un ejemplo de un libro de Java EE), he especificado la configuración mainClass :

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.aptovia.javaee7</groupId> <artifactId>CDBOOKSTORE</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>app-client</packaging> <name>CDBOOKSTORE</name> <properties> <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>7.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.jboss.weld.se</groupId> <artifactId>weld-se</artifactId> <version>2.1.0.Final</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.7</source> <target>1.7</target> <compilerArguments> <endorseddirs>${endorsed.dir}</endorseddirs> </compilerArguments> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-acr-plugin</artifactId> <version>1.0</version> <extensions>true</extensions> <configuration> <archive> <manifest> <mainClass>org.aptovia.javaee7.CDBOOKSTORE.Main</mainClass> </manifest> </archive> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.8</version> <executions> <execution> <phase>validate</phase> <goals> <goal>copy</goal> </goals> <configuration> <outputDirectory>${endorsed.dir}</outputDirectory> <silent>true</silent> <artifactItems> <artifactItem> <groupId>javax</groupId> <artifactId>javaee-endorsed-api</artifactId> <version>7.0</version> <type>jar</type> </artifactItem> </artifactItems> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.2.1</version> <executions> <execution> <goals> <goal>java</goal> </goals> <configuration> <mainClass>org.aptovia.javaee7.CDBOOKSTORE.Main</mainClass> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>

También se ve bien de acuerdo con esto: https://www.mojohaus.org/exec-maven-plugin/usage.html

He hecho un mvn limpio, reconstruido, pero sigo recibiendo este error. Realmente no estoy seguro de lo que está pasando :(

Cualquier ayuda muy apreciada!


La "configuración" debe ir fuera de "ejecuciones", como esto:

<plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.2.1</version> <executions> <execution> <goals> <goal>java</goal> </goals> </execution> </executions> <configuration> <mainClass>com.emilio.App</mainClass> </configuration> </plugin> </plugins>


La configuración parece correcta y falta el parámetro id en la parte de ejecución. La forma correcta sería:

<executions> <execution> <id>someID</id> <goals> <goal>java</goal> </goals> <configuration> <mainClass>org.aptovia.javaee7.CDBOOKSTORE.Main</mainClass> </configuration> </execution> </executions>

Asumiendo que está ejecutando el método principal utilizando maven, la ejecución sería como a continuación:

mvn exec: java @ someID

someID añadido dentro de la parte de ejecución.


No hay un parámetro como mainClass en exec-maven-plugin, trate de usar:

<configuration> <executable>java</executable> <arguments> <argument>-classpath</argument> <classpath/> <argument>org.aptovia.javaee7.CDBOOKSTORE.Main</argument> </arguments> </configuration>


Si la <configuration> está fuera de las <executions> , es la configuración para que se use el complemento sin importar cuál sea la fase del ciclo de vida.

Si la <configuration> está dentro de las <executions> , es la configuración que se usará en cierta fase del ciclo de vida.

Como Vabis ha sugerido, use mvn exec:java@someID para ejecutar la ejecución específica del objetivo para un complemento.

Para obtener más información, consulte https://maven.apache.org/guides/mini/guide-configuring-plugins.html .