2010-03-12 9 views
4

suffit de mettre en place un projet simple pour tester la fonctionnalité du plugin maven exec. J'ai une classe contenant une méthode principale "Hello World". J'ai testé deux configurations du plugin exec.Pourquoi exec: java fonctionne et exec: exec échoue?

 <goals> 
      <goal>exec</goal> 
     </goals> 
     <configuration> 
      <executable>java</executable> 
      <arguments> 
      <argument>-classpath</argument> 
      <classpath/> 
      <argument>test.exec.HelloWorldExec</argument> 
      </arguments> 
     </configuration> 

lamentablement échoué, me donnant un ClassNotFoundException, tandis que

 <goals><goal>java</goal></goals> 
     <configuration> 
      <mainClass>test.exec.HelloWorldExec</mainClass> 
     </configuration>    

travaillé. Cependant, je voudrais pouvoir démarrer ma classe principale java dans un processus séparé, donc j'aimerais comprendre ce qui est différent avec exec: exec et comment je peux le faire fonctionner?

Toute aide appréciée

acclamations

Whiz

Répondre

2

peut être lié à this bug. Une solution de contournement est incluse dans la description, espérons que cela aide :-)

Si la solution de contournement n'aide pas, vous pouvez toujours voter pour le bogue afin d'augmenter les chances d'une solution rapide.

+0

Je ne sais pas pourquoi cela fonctionne dans certains cas, et pourquoi cela ne fonctionne pas dans d'autres. Mais alors que sur mon ordinateur personnel je n'ai pas rencontré cette erreur (essayé sur un debian et un windows7 avec différentes versions de maven), au travail sur mon poste de travail d'ubuntu c'est définitivement lié au bogue que vous avez posté - merci de poster :-), cela va au moins me donner une solution de contournement. – whiskerz

0

Je ne peux pas reproduire avec la version 1.1 du exec-maven-plugin. J'ai créé un exemple de projet:

$ mvn archetype:generate -DgroupId=com.stackoverflow.q2433572 -DartifactId=q2433572 -Dversion=1.0-SNAPSHOT 
$ cd q2433572 

J'ai ajouté la configuration du plugin suivante pour le pom.xml:

<project> 
    ... 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>exec-maven-plugin</artifactId> 
     <version>1.1</version> 
     <goals> 
      <goal>exec</goal> 
     </goals> 
     <configuration> 
      <executable>java</executable> 
      <arguments> 
      <argument>-classpath</argument> 
      <classpath/> 
      <argument>com.stackoverflow.q2433572.App</argument> 
      </arguments> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

Et c'est la sortie que je reçois lors de l'exécution mvn exec:exec:

 
$ mvn exec:exec 
[INFO] Scanning for projects... 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building q2433572 
[INFO] task-segment: [exec:exec] 
[INFO] ------------------------------------------------------------------------ 
[INFO] [exec:exec {execution: default-cli}] 
[INFO] Hello World! 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESSFUL 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 2 seconds 
[INFO] Finished at: Fri Mar 12 17:11:38 CET 2010 
[INFO] Final Memory: 3M/53M 
[INFO] ------------------------------------------------------------------------ 

Fonctionne comme prévu.