Est JPA persistence.xml classpath situé?

Voici ce que je suis en train de faire. Je suis l'aide de persistance JPA dans une application web, mais j'ai un ensemble de tests unitaires que je veux courir à l'extérieur d'un conteneur.

J'ai mon premier persistence.xml dans le META_INF dossier de mon application principale et il fonctionne très bien dans le conteneur (Glassfish).

J'ai placé un deuxième persistence.xml dans le META-INF dossier de mon test-classes répertoire. Il contient un distinct unité de persistance que je veux utiliser pour le test. Dans eclipse, j'ai placé ce dossier plus haut dans le classpath que le dossier par défaut et il semble fonctionner.

Maintenant quand je lance le maven build directement à partir de la ligne de commande et il tente d'exécuter les tests unitaires, la persistence.xml remplacement est ignoré. Je peux voir le remplacer dans la META-INF dossier de l'maven généré test-classes répertoire et je m'attendais à la maven tests pour utiliser ce fichier, mais il ne l'est pas. Ma source de test de remplacement de configuration, d'un mode de travail.

Je suis confus à savoir si le persistence.xml est situé dans le classpath. Si elle l'était, mon substituer devrait fonctionner comme le printemps remplacer depuis le maven plugin surefire explique "[La classe de test répertoire] sera inclus au début de l'essai classpath".

Ai-je tort de prévoir comment les persistence.xml fichier se trouve?

J'ai pu (et ont) créer une deuxième unité de persistance dans la production persistence.xml fichier, mais il se sent sale place de test de la configuration de ce fichier de production. D'autres idées sur la façon d'atteindre mon objectif est la bienvenue.

OriginalL'auteur Vinnie | 2010-04-14