仅限“休眠注释”

时间:2018-10-22 13:15:03

标签: java hibernate maven

我正在寻找仅包含休眠注释而不包含休眠核心的Maven工件。我尝试获取小型模型包。

似乎要休眠3了: https://mvnrepository.com/artifact/org.hibernate/hibernate-annotations

常见注释似乎不包含@Type等 https://mvnrepository.com/artifact/org.hibernate.common/hibernate-commons-annotations

这种情况下的最佳做法是什么?

1 个答案:

答案 0 :(得分:2)

我不知道休眠罐子将只包含干净的注释,包括@Type,而没有其他与休眠有关的东西。

我试图猜测,您想获得一个jar,其中将包含在导入中使用@Type批注的代码,但不依赖于hibernate-core。

在这种情况下,请使用提供的 Maven范围。

Google说

  

Maven依赖范围–提供。提供的Maven依赖范围是   在构建和测试项目期间使用。他们还必须跑步,   但不应导出,因为依赖项将由   运行时,例如,通过servlet容器或应用程序服务器。

这意味着“ 需要运行”和“ 将被提供”在这里是必须加载类路径

org.hibernate.annotations.Type 

从任何地方(很可能是从现有的hibernate-core jar)开始的,但是实际上不必完全是hibernate-core。 Java类的坐标是class_name + package + classloader。对于特殊软件包名称(例如 java.lang )有一些注意事项,但对于 org.hibernate ** 则没有考虑。如果您要创建自己的jar,则将包含相同的软件包+具有相同名称的注释,效果将相同。

换句话说,如果您严格不希望从hibernate-core中使用它,则可以在自己的jar中自己创建@Type注释。

希望这会有所帮助。