在打包(war)许多模块(Maven)时,将两个或多个persistence.xml合并为一个

时间:2010-06-04 03:28:56

标签: maven-2 jpa maven persistence.xml

我有一个带有一些模块的maven托管项目(带有jar包),每个模块在其META-INF目录中包含其“persistence.xml”。

另一个模块负责将这些模块打包成war文件。但我发现无法将这些“persistence.xml”“合并”到一个文件中......

有可能吗?

先谢谢。

3 个答案:

答案 0 :(得分:5)

如果您了解XSLT,则可以编写转换来合并持久性文档。 Maven有一个用于运行XSLT(和validationg XML)的插件 - xml-maven-plugin

但你需要这样做吗?例如,阅读herehere表示将从所有jar中获取persistence.xml,而不仅仅是webapp war。因此,您应该能够将persistence.xml保留在库jar中,并且将由webapp使用。

答案 1 :(得分:1)

喜 为了让服务器搜索多个persistence.xml文件并配置所有持久性单元,您必须将此persistence.xml文件打包在EJB JAR文件中。

Aymen

答案 2 :(得分:0)

  

另一个模块负责将这些模块打包成war文件。但我发现无法将这些“persistence.xml”“合并”到一个文件中

你为什么要这样做?如果您有多个具有persistence.xml的JAR,则它们很可能定义了不同的持久性单元(持久性单元定义了应用程序相关或分组的所有类的集合,并且必须在映射中进行共处到一个数据库)。

为什么不为正确的持久性单位获得EntityManagerFactory