Ist JPA persistence.xml classpath liegt?

Hier ist, was ich versuche zu tun. Ich bin mit JPA-Persistenz in einer web-Anwendung, aber ich habe eine Reihe von unit-tests, die ich laufen will, die außerhalb eines Containers.

Ich habe meine primäre persistence.xml im META_INF Ordner meiner Haupt-app und es funktioniert Super im container (Glassfish).

Legte ich eine zweite persistence.xml im META-INF Ordner von meinem test-classes - Verzeichnis. Diese enthält eine eigene Persistenz-Einheit, die ich verwenden möchten, für die es nur testen. In eclipse, legte ich diesen Ordner höher in den classpath als der Standard-Ordner und es scheint zu funktionieren.

Nun wenn ich das maven-build-direkt von der Befehlszeile aus, und es versucht zum ausführen der unit-tests, die persistence.xml override ignoriert. Ich kann sehen, dass das überschreiben in der META-INF Ordner von maven generierte test-classes Verzeichnis und ich erwartete, maven tests um diese Datei zu verwenden, ist es aber nicht. Meine Spring-test-Konfiguration überschreibt, erzielt in einer ähnlichen Weise arbeiten.

Bin ich verwirrt, ob die persistence.xml befindet sich über den classpath. Wenn es so wäre, meine überschreiben sollte funktionieren wie die Feder überschreiben, da das maven-surefire-plugin erklärt "[Der test-Klasse-Verzeichnis] aufgenommen werden zu Beginn der test-classpath".

Habe ich falsch Vorhersagen, wie die persistence.xml Datei liegt?

Ich konnte (und habe) erstellen Sie eine zweite Ausdauer-Einheit in der Produktion persistence.xml - Datei, aber es fühlt sich schmutzig an Ort test-Konfiguration in dieser Produktion-Datei. Andere Ideen, wie Sie zu erreichen ist mein Ziel, ist willkommen.

InformationsquelleAutor Vinnie | 2010-04-14
Schreibe einen Kommentar