从 Gogo Shell,获取 com.liferay.portal.kernel 的版本

Posted

技术标签:

【中文标题】从 Gogo Shell,获取 com.liferay.portal.kernel 的版本【英文标题】:From Gogo Shell, get version of com.liferay.portal.kernel 【发布时间】:2019-09-06 06:21:31 【问题描述】:

我只有一个到 Liferay 服务器的 Gogo Shell 连接。

从那个 shell,有没有办法知道那个服务器使用的 com.liferay.portal.kernel 包的版本?

例如,如果我想知道com.liferay.util.taglib 包的版本,我会输入lb | grep Taglib | grep Util 并看到版本是2.9.0,但同样的方法似乎不适用于内核包。

【问题讨论】:

【参考方案1】:

portal-kernel.jar 仍在全局类路径(lib/ext 文件夹)中。不确定您是否可以通过 OSGi 容器处理它。

您可以在该 jar 内的清单文件中检查已安装的版本。

无论如何,我猜您是在询问以便在您的开发中设置依赖关系。如果是这种情况,我建议您在兼容性方面设置您可以使用的旧版本(请参阅 Nebinger 的帖子:https://community.liferay.com/es/blogs/-/blogs/choosing-osgi-versions-during-development)

您最好的选择并不总是使用最新版本的依赖项。

【讨论】:

所以这个命令给出了我猜的版本? unzip -j $LIFERAY_HOME/tomcat/lib/ext/portal-kernel.jar META-INF/MANIFEST.MF -d /tmp/; grep "^Bundle-Version" /tmp/MANIFEST.MF 如果你在服务器上,为什么不呢?使用 zgrep 或类似工具更好,因此您不必先解压缩 jar,将其留在那里。 zgrep "^Bundle-Version" $LIFERAY_HOME/tomcat/lib/ext/portal-kernel.jar【参考方案2】:

你也可以使用:

lb | grep Foundation

为 DXP7.0 环境获取对应于 7.0.72 之类的“Liferay Foundation”版本。我不确定这是否也适用于 DXP7.1。

【讨论】:

com.liferay.portal.kernel 的最高版本是3.61.0,见mvnrepository.com/artifact/com.liferay.portal/… 好的,抱歉。 sn -p 将返回与内核版本不同的 DXP 版本。【参考方案3】:

也许使用 gogo shell 是不可能的。

调用json web服务可以达到版本号:

λ curl http://localhost:8080/api/jsonws/portal/get-build-number -u user:pwd

【讨论】:

以上是关于从 Gogo Shell,获取 com.liferay.portal.kernel 的版本的主要内容,如果未能解决你的问题,请参考以下文章

GOGO语言学习笔记一

GOgo.mod

go runtime其他函数 gogo, goexit

gogo国内镜像

GOgo json 操作

GOGo安全指南