gpt4 book ai didi

java - 多层应用程序中的 Hibernate 依赖项位置

转载 作者:行者123 更新时间:2023-11-30 03:36:30 25 4
gpt4 key购买 nike

我有一个关于我的 Maven 项目中 hibernate-annotations jar 的位置的具体问题。

我的项目由三个模块组成。客户端和服务器模块都依赖于共享模块。 Maven 构建两个用于部署的包:Client + Shared 和 Server + Shared。

带注释的 Hibernate 实体位于共享模块中,因为我需要在客户端和服务器之间传递它们(通过 RMI)。

现在我的问题来了。 hibernate-annotations.jar 用作 Shared 模块的依赖项,以允许编译 Hibernate 实体。该库本身依赖于 hibernate-core。因此,我在部署的客户端应用程序中拥有 hibernate 库,即使我在那里并不真正需要它们。 jar 很大,我想让客户尽可能 slim 。

是否有一些成熟的技术可以避免这个问题?我想到的一种方法是使用基于 XML 的 Hibernate 配置,这样我就可以将 Hibernate 依赖项移至服务器模块,但我想坚持使用注释。

谢谢。

最佳答案

您可以在客户端的 pom.xml 中排除共享依赖项的一个或多个传递依赖项。下面的示例假设共享项目具有组 ID“org.shared”、 Artifact ID“shared”和版本“0.0.1-SNAPSHOT”:

<dependency>
<groupId>org.shared</groupId>
<artifactId>shared</artifactId>
<version>0.0.1-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
</exclusion>
...
</exclusions>
</dependency>

关于java - 多层应用程序中的 Hibernate 依赖项位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27782152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com