maven - Liferay 版本和正确的依赖关系
问题描述
我对 Liferay、Maven 和 Java 比较陌生,所以这可能是关于依赖关系的一般性问题。我正在维护一个已从 6.2 迁移到 7.1 的 Liferay portlet,并且有许多带有版本号的 Liferay maven 依赖项(例如 com.liferay.portal.kernel)。
一个人如何知道这些依赖项的哪个版本用于他们正在使用的产品版本?
这是一个典型的案例,即使产品的版本是次要版本,也应该始终尝试使用最新版本的依赖项?
解决方案
确保在目标环境中重新编译 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.kernel
JAR 的实际依赖项如何没有指定版本。
<dependency>
<groupId>com.liferay.portal</groupId>
<artifactId>com.liferay.portal.kernel</artifactId>
</dependency>
JAR 版本将从 BOM 中获取,以确保它与 Liferay Portal 包含的给定版本相匹配。
为了比较,这里是完全相同的 POM,但适用于 Liferay Portal 7.1。如您所见,唯一的区别是portal.version
属性。
推荐阅读
- vue.js - 如何制作最大 1MB 的上传图片?
- java - 最近捕获的异常下的所有 Numberformat 异常都将自行执行
- php - 如何使用持久连接在 AWS 中处理 PDO MySQL 故障转移
- c++ - 有时将函数作为参数发送时出错
- com - 如何知道 IMFTransform 何时完成输入样本?
- android - Android 约束布局:如何将视图与另一个视图垂直对齐
- arrays - 使用 Google Apps 脚本比较两个整数数组
- excel - 试图提高我的 VBA 代码的质量和效率
- javascript - 如何使我的 if 语句正确评估?
- javascript - 如何对特定数字中的数字进行分类?