2010-06-04 48 views
2

時,將兩個或多個persistence.xml(s)合併爲一個,我有一個帶有一些模塊(帶有jar包)的maven管理項目,每個模塊都包含它的「persistence.xml 「在其META-INF目錄中。當打包(war)很多模塊(Maven)

另一個模塊負責將這些模塊打包成一個war文件。但我找不到將這些「persistence.xml」合併成一個文件的方法......

這可能嗎?

謝謝先進。

回答

5

如果您瞭解XSLT,則可以編寫一個轉換來合併持久性文檔。 Maven有一個用於運行XSLT(和驗證XML)的插件 - xml-maven-plugin

但是您是否需要這樣做?例如,閱讀herehere指出persistence.xml將從所有jar文件中挑選出來,而不僅僅是webapp戰爭。所以你應該能夠將persistence.xml留在你的庫jar中,並且webapp會使用它。

0

另一個模塊負責將這些模塊打包成一個war文件。但我無法將這些「persistence.xml」「合併」爲一個文件

爲什麼要這樣做?如果您有多個具有persistence.xml的JAR,則它們定義了很可能不同的持久性單元(持久性單元定義了由應用程序關聯或分組的所有類的集合,並且它們必須在映射到單個數據庫的同位置中) 。

爲什麼沒有獲得正確的持久性單元的EntityManagerFactory

+0

謝謝你,因爲我的應用服務器(樹脂4.0.7)似乎無法加載的persistence.xml罐子裏面,所以我想這些的persistence.xml(S)合二爲一。 好吧,也許這是樹脂的設置,我會進一步研究它。 – smallufo 2010-06-05 04:08:30

1

hi 爲了讓服務器搜索多個persistence.xml文件並配置所有持久性單元,必須將此persistence.xml文件打包到EJB JAR文件上。

Aymen