variable tutorial plugin org instalar español entorno descargar consola comandos codehaus maven exec-maven-plugin

tutorial - Excepción de clase no encontrada con exec-maven-plugin cuando se ejecuta en Linux



org codehaus mojo exec maven plugin 1.2 1 exec (3)

Aunque la respuesta aceptada está bien, esto también podría ayudar a alguien.

Parece que necesita asegurarse de que está construyendo el Proyecto Maven antes de ejecutar cualquier objetivo de complemento que se basa en las clases compiladas.

En el caso de que cuando cree una nueva clase java, para cuando use el objetivo del complemento, se ClassNotFoundException porque no hay una versión compilada de esa clase (el complemento depende de la versión compilada de la clase).

Simplemente asuma que tiene una configuración de complemento como la que se muestra a continuación en su pom.xml ( NOTA: la pregunta SO original se menciona acerca de cómo ejecutar la clase principal directamente sin especificarla en un pom.xml, y cómo hacerlo se explica en la respuesta aceptada de )

<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.2.1</version> <configuration> <mainClass>com.myproj.java.Main</mainClass> </configuration> </plugin>

Así que antes de ejecutar cualquier objetivo plugin, haz

mvn clean install

entonces

mvn exec:java

o hacer

mvn install exec:java

Estoy tratando de ejecutar pruebas de TestNG. La organización de Mi proyecto es - src-> test-> java-> com-> shn-> library El siguiente comando funciona bien en Windows pero falla en Linux.

mvn -X clean exec:java -Dexec.mainClass="com.shn.library.RunSuitesInParallel" -Dexec.classpathScope=test -e

Error visto en Linux al ejecutar el mismo comando -

[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2.1:java (default-cli) on project UAF: An exception occured while executing the Java class. com.shn.library.RunSuitesInParallel -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2.1:java (default-cli) on project UAF: An exception occured while executing the Java class. com.shn.library.RunSuitesInParallel at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) Caused by: org.apache.maven.plugin.MojoExecutionException: An exception occured while executing the Java class. com.shn.library.RunSuitesInParallel at org.codehaus.mojo.exec.ExecJavaMojo.execute(ExecJavaMojo.java:352) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) ... 19 more Caused by: java.lang.ClassNotFoundException: com.shn.library.RunSuitesInParallel at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:423) at java.lang.ClassLoader.loadClass(ClassLoader.java:356) at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:285) at java.lang.Thread.run(Thread.java:722) [ERROR] [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException


Corrí -

mvn clean install.

Publicar que cuando corro -

mvn -X clean exec:java -Dexec.mainClass="com.shn.library.RunSuitesInParallel" -Dexec.classpathScope=test -e

Las clases compiladas se eliminan y el error es aparente.

Entonces la solución es -

mvn -X clean install exec:java -Dexec.mainClass="com.shn.library.RunSuitesInParallel" -Dexec.classpathScope=test -e


Lo más probable es que la resolución a la excepción ClassNotFoundException cuando se usa el complemento exec-maven , es cambiar el alcance de la ruta de clase predeterminada (src / main / java), a su ruta de clase de prueba (src / test / java).

Se puede pasar en el comando mvn (-Dexec.classpathScope = "test"), o en el pom.xml:

<classpathScope>test</classpathScope>

por ejemplo:

<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.6.0</version> <executions> <execution> <phase>test-compile</phase> <goals> <goal>java</goal> </goals> <configuration> <mainClass>your.package.test.class</mainClass> <arguments> ... </arguments> <classpathScope>test</classpathScope> </configuration> </execution> </executions> </plugin>