2009-09-08 11 views
2

dans notre projet d'application web, nous incluons des fichiers jar. Pour corriger certains problèmes de l'une des classes dans un fichier jar, nous avons modifié l'implémentation de cette classe dans un dossier source patches. Comme il existe un ordre de chargement de classe défini dans tomcat (WEB-INF/classes avant WEB-INF/lib), la version corrigée de la classe est chargée par tomcat, pas celle d'origine dans le fichier jar. Donc, dès que nous déployons notre application, tout fonctionne comme prévu.Existe-t-il un ordre de chargement de classe personnalisable utilisant la tâche ant junit?

Maintenant, nous voulons lancer des tests junit à partir de ant pour cette classe corrigée. Nous configurons donc le chemin de classe pour contenir à la fois le fichier jar d'origine et le fichier de classe corrigé. Mais il semble qu'il n'y ait aucun moyen de dire à la tâche de junit de la fourmi de charger d'abord la classe corrigée, pas la version non corrigée du fichier jar.

Existe-t-il un moyen de contourner le problème? Y at-il un moyen de déterminer l'ordre dans lequel les classes sont chargées par la tâche de junit de la fourmi? Existe-t-il un autre moyen de tester notre classe corrigée de la fourmi?

Répondre

1

Je pense qu'un chemin de classe ant fonctionne exactement comme le classpath Java standard. Le chemin de classe est recherché dans l'ordre où les chemins sont déclarés et une classe est chargée à partir du premier chemin où il est trouvé.

Votre élément classpath pour votre tâche JUnit devrait être quelque chose comme:

<classpath> 
    <pathelement location="${patched.class.folder}"/> 
    <pathelement location="${original.class.jar}"/> 
</classpath> 
+0

Merci. Cela m'a aidé. – maccaroo