例如,我的pom.xml中有以下hibernate内容:
<!-- Hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>3.6.10.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
<version>3.3.1.GA</version>
</dependency>
<dependency>
<groupId>org.hibernate.common</groupId>
<artifactId>hibernate-commons-annotations</artifactId>
<version>4.0.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.2.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-envers</artifactId>
<version>3.6.10.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>3.6.10.Final</version>
</dependency>
现在它运作良好。但此刻我需要将hibernate核心的版本更改为5.我害怕我的变化。据我所知,如果库具有后向兼容性,则很少见。但在改变主要版本后,这绝对是不可能的。
如何确定剩余休眠内容的各个版本?
答案 0 :(得分:1)
通常团队(在这种情况下为Hibernate
)应提供其各种库的兼容性矩阵。
即使他们不这样做,通常也不难确定自己。所有库的最新版本通常应兼容,因此如果您打算将所有库升级到最新版本,升级可能会顺利进行。
在您的情况下,hibernate-core
,hibernate-envers
和hibernate-entitymanager
显示为follow the same version个,因此您可以将5.0.0.Beta2
用于这些库。只需使用libraries其余部分的最新版本(几乎所有版本都看起来像实用程序,所以我希望它们与上面的核心库兼容)。
您将不得不尝试使用这些组合来查看哪个有效。在这些情况下,拥有一套强大的测试套件通常会有所帮助。
答案 1 :(得分:0)
Maven物料清单(BOM)提供了这样一个功能,我们可以在其中包含我们需要的工件,但是不需要显式定义版本,并且将从bom文件中引用版本,这将有助于维护最新版本的定义的工件。 此链接提供了更多详细信息和示例: https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
另一个我发现的JBoss示例: http://www.mastertheboss.com/jboss-frameworks/maven-tutorials/jboss-maven/maven-and-jboss-how-to-use-boms