簡體   English   中英

JPA persistence.xml類路徑是否位於?

[英]Is JPA persistence.xml classpath located?

這就是我想要做的。 我在Web應用程序中使用JPA持久性,但我有一組單元測試,我想在容器外運行。

我的主要應用程序的META_INF文件夾中有我的主要persistence.xml ,它在容器(Glassfish)中運行良好。

我在test-classes目錄的META-INF文件夾中放置了第二個persistence.xml 這包含一個單獨的持久性單元,我只想用於測試。 在eclipse中,我將此文件夾放在類路徑中比默認文件夾更高,它似乎工作。

現在,當我直接從命令行運行maven構建並嘗試運行單元測試時,將忽略persistence.xml覆蓋。 我可以在maven生成的test-classes目錄的META-INF文件夾中看到覆蓋,我希望maven測試使用這個文件,但事實並非如此。 我的Spring測試配置覆蓋,以類似的方式實現了工作。

我很困惑persistence.xml是否通過類路徑定位。 如果是,我的覆蓋應該像彈簧覆蓋一樣工作,因為maven surefire插件解釋 “[測試類目錄]將包含在測試類路徑的開頭”。

我是否錯誤地預測了persistence.xml文件的位置?

我可以(並且已經)在生產persistence.xml文件中創建第二個持久性單元,但是將測試配置放入此生產文件中會感覺很臟。 關於如何實現我的目標的任何其他想法都是受歡迎的。

目前還不清楚您放置“第二個” persistence.xml (測試版)的位置,但您應將其放在src/test/resources/META-INF 測試資源會自動添加到Maven為您的單元測試設置的類路徑中,並優先於src/main/resources

persistence.xml是從類路徑加載的; 在過去,我完成了你所描述的。

這很可能是maven的一個問題。 您可以通過使用-X選項運行它來調試maven類路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM