首页 > 解决方案 > Liferay 版本和正确的依赖关系

问题描述

我对 Liferay、Maven 和 Java 比较陌生,所以这可能是关于依赖关系的一般性问题。我正在维护一个已从 6.2 迁移到 7.1 的 Liferay portlet,并且有许多带有版本号的 Liferay maven 依赖项(例如 com.liferay.portal.kernel)。

一个人如何知道这些依赖项的哪个版本用于他们正在使用的产品版本?

这是一个典型的案例,即使产品的版本是次要版本,也应该始终尝试使用最新版本的依赖项?

标签: mavenliferayliferay-7liferay-7.1

解决方案


确保在目标环境中重新编译 JAR 版本的最简单的方法可能是使用相应的 BOM(物料清单)。

例如,您可以查看Liferay Portal 7.2 的此代码示例的 POM。请注意dependencyManagement指示要使用的 BOM:

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.liferay.portal</groupId>
                <artifactId>release.portal.bom</artifactId>
                <version>${portal.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

然后注意com.liferay.portal.kernelJAR 的实际依赖项如何没有指定版本。

        <dependency>
            <groupId>com.liferay.portal</groupId>
            <artifactId>com.liferay.portal.kernel</artifactId>
        </dependency>

JAR 版本将从 BOM 中获取,以确保它与 Liferay Portal 包含的给定版本相匹配。

为了比较,这里是完全相同的 POM,但适用于 Liferay Portal 7.1。如您所见,唯一的区别是portal.version属性。


推荐阅读