2010-09-07 16 views
0

J'essaye d'exécuter un certain nombre de classes qui résident dans le dossier 'test' de Maven à partir de la ligne de commande que je combinerai plus tard pour exécuter dans un script de ksh. Le problème que je rencontre est que je peux exécuter des fichiers qui sont dans le dossier 'principal' mais je veux en exécuter un autre qui se trouve dans le dossier 'test'.Comment exécuter une seule classe à partir du dossier de test de Maven à partir de la ligne de commande?

Est-ce que quelqu'un sait, ou a des idées sur la façon de le faire ???

acclame.

Répondre

0

Le dossier de test est réservé aux tests unitaires. Vous pouvez lancer un test unitaire à l'aide de la commande suivante:

$ mvn install -Dtest=ClassName 

Notez que ClassName n'inclut pas le nom du module.

Si vous souhaitez lancer une classe contenant une méthode principale, votre classe doit être dans le dossier principal.

+0

Intéressant. Je veux lancer une classe que je ne veux pas être dans le dossier principal mais qui n'est pas reconnue comme test car il n'y a pas d'annotations @Test dans la classe elle-même et il n'y a aucune raison pour cela mais je le ferais Il est préférable de l'exécuter en mode autonome et d'utiliser la version actuelle du code référencé par Maven, plutôt que de simplement l'empaqueter dans un JAR et de l'exécuter de cette manière. Aucune suggestion?? – matt2010

+0

@ matt2010, jetez un coup d'œil à [exec-maven-plugin] (http://mojo.codehaus.org/exec-maven-plugin/) –

0

Je l'ai vu maintenant et je me demande si l'un ou l'autre d'entre eux sont les bonnes choses à utiliser ??

<configuration> 
      .. 
     <classpathScope>test</classpathScope> 
      ... 
</configuration> 

OU:

mvn exec:exec [...] -Dexec.classpathScope="java" 

pourrais-je remplacer "java" avec "Test" et puis-je utiliser exec: java à la place ou exec: exec ??

+0

Avez-vous essayé ceux-ci? 'mvn exec: java -Dexec.mainClass = your.class.name' devrait fonctionner, je l'utilise régulièrement. Si vous devez inclure des dépendances qui sont en dehors de la portée habituelle, vous pouvez ajouter '-Dexec.classPathScope = quelquechose-scope-you-need'. –