2013-07-03 3 views
14

पर चलने पर निष्पादन-मेवेन-प्लगइन के साथ क्लास नहीं मिला अपवाद मैं टेस्टएनजी परीक्षण चलाने की कोशिश कर रहा हूं। मेरा प्रोजेक्ट संगठन है - src-> test-> जावा-> com-> shn-> लाइब्रेरी नीचे दिया गया आदेश विंडोज़ में अच्छी तरह से काम करता है लेकिन लिनक्स में विफल रहता है।लिनक्स

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

एक ही आदेश चलाकर पर त्रुटि लिनक्स में देखा -

[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 
+2

आपके द्वारा चलाए गए ' जार बनाने के लिए लिनक्स पर एमवीएन इंस्टॉल '? – kfaerber

+0

हां, मैंने एमवीएन – praneel

+0

इंस्टॉल करने का प्रयास किया था, मेरा बुरा, मैंने एमवीएन इंस्टॉल किया था। लेकिन फिर, मेरे द्वारा चलाया गया आदेश था - एमवीएन ** साफ ** -एक्स exec: java -Dexec.mainClass = "com.shn.library.RunSuitesInParallel" -Dexec.classpathScope = test -e। तो सभी संकलित वर्ग हटा दिए गए थे और इसलिए त्रुटि स्पष्ट थी – praneel

उत्तर

26

मैं भाग गया -

mvn clean install. 

पोस्ट जो जब मैं चलाने -

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

संकलित कक्षाएंहटाएंत्रुटि स्पष्ट है।

तो समाधान है -

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

हालांकि स्वीकार किए जाते हैं जवाब ठीक है, यह भी किसी को मदद कर सकता है।

ऐसा लगता है कि आपको यह सुनिश्चित करने की ज़रूरत है कि आप किसी भी प्लगइन लक्ष्यों को चलाने से पहले मेवेन प्रोजेक्ट का निर्माण कर रहे हैं जो संकलित कक्षाओं पर भरोसा करते हैं।

जब आप एक नया जावा क्लास बनाते हैं, तब तक जब आप प्लगइन लक्ष्य का उपयोग करने जा रहे हैं, ClassNotFoundException फेंक दिया गया है क्योंकि उस वर्ग का कोई संकलित संस्करण नहीं है (प्लगइन कक्षा के संकलित संस्करण पर भरोसा करता है)।

बस मान लें कि आपके पास अपने pom.xml (नोट) में नीचे एक प्लगइन कॉन्फ़िगरेशन है: मूल SO प्रश्न यह मुख्य श्रेणी को सीधे pom.xml में निर्दिष्ट किए बिना बताता है, और इसे कैसे किया जाए praneel) द्वारा स्वीकार कर लिया जवाब है,

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

तो इससे पहले कि आप किसी भी प्लगइन लक्ष्यों चलाने के लिए,

mvn clean install 

तो

012 कर
mvn exec:java 

या करते हैं,

mvn install exec:java 
1

सबसे अधिक संभावना है कि समाधान के लिए ClassNotFoundException जब कार्यकारी-Maven-प्लगइन का उपयोग कर, change the default classpath scope को (src \ मुख्य \ जावा) है, करने के लिए अपने टेस्ट क्लासपाथ (src \ test \ java)।

यह mvn आदेश में पारित किया जा सकता (-Dexec.classpathScope = "परीक्षण"), या pom.xml में:

<classpathScope>test</classpathScope> 
उदाहरण के लिए

:

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