【发布时间】:2011-02-27 14:48:39
【问题描述】:
我有一个 Maven 管理的项目,其中包含一些模块(带有 jar 包)。每个模块在其 META-INF 目录中都包含其“persistence.xml”文件。
另一个模块负责将这些模块打包成一个war文件。但是我还没有找到将这些“persistence.xml”文件“组合”成一个文件的方法。
有可能吗?
【问题讨论】:
标签: maven-2 jpa maven persistence.xml
我有一个 Maven 管理的项目,其中包含一些模块(带有 jar 包)。每个模块在其 META-INF 目录中都包含其“persistence.xml”文件。
另一个模块负责将这些模块打包成一个war文件。但是我还没有找到将这些“persistence.xml”文件“组合”成一个文件的方法。
有可能吗?
【问题讨论】:
标签: maven-2 jpa maven persistence.xml
如果您了解 XSLT,则可以编写一个转换来合并持久性文档。 Maven 有一个用于运行 XSLT(和验证 XML)的插件 - xml-maven-plugin
但是你需要这样做吗?例如,阅读here 和here 表明persistence.xml 将从所有jar 中获取,而不仅仅是webapp 战争。所以你应该能够将 persistence.xml 留在你的库 jars 中,webapp 将使用它。
【讨论】:
嗨 为了让服务器搜索多个persistence.xml文件并配置所有的持久化单元,你必须将这个persistence.xml文件打包到EJB JAR文件中。
艾门
【讨论】:
另一个模块负责将这些模块打包成一个war文件。但我没有办法将这些“persistence.xml”“组合”到一个文件中
您为什么要这样做?如果您有多个具有persistence.xml 的 JAR,它们很可能定义了不同的持久性单元(持久性单元定义了与应用程序相关或分组的所有类的集合,并且必须在它们的映射中并置到单个数据库)。
为什么不为正确的持久性单元获取EntityManagerFactory?
【讨论】: