version-control - 如何在 liferay 7 + OSGI 中获取 portlet 的版本?
问题描述
如何获得 liferay 7 的 .war portlet 版本。
例如,在 liferay 6.2 中,我有一个 .war,然后它在 tomcat webapps 文件夹中被分解,我可以通过查看以下一些属性来获得带有另一个脚本的版本:
TMP="$(cat $LIFERAY_FOLDER/tomcat-7.0.62/webapps/MyPortlet/WEB-INF/liferay-plugin-package.xml | awk -v FS="(MyPortlet-portlet/|/war)" '{print $2}' | grep "^.")"
echo -e "MyPortlet:\t\t\t$TMP" >> $OUTPUT_FILE
或者在 porlet 中获取一些静态文件的版本:
TMP="$(cat $LIFERAY_FOLDER/tomcat-7.0.62/webapps/MyPortlet/WEB-INF/src/content/Language_de.properties | awk -v FS="(TEXT_VERSION = )" '{print $2}' | grep "^.")"
echo -e "Text version of MyPortlet:\t\t$TMP">> $OUTPUT_FILE
如何在具有 liferay 7.1+ 的生产服务器中拥有此版本控制功能?
我需要能够自动检查当前部署的版本。默认情况下,gogo 工具在生产模式下未启用,我发现 telnet 访问有时会使整个 tomcat 崩溃,所以这是一个不可行的选项。即便如此,我只看到它允许访问捆绑版本,但无论如何访问一些静态文件。
谢谢。
解决方案
一种方法是通过 /api/jsonws (具有来宾访问权限)公开自定义远程服务,以获取版本。
您可以使用以下代码检索当前捆绑包版本:
public String getVersion() {
Bundle bundle = FrameworkUtil.getBundle(XXXXImpl.class);
return bundle.getVersion().toString();
}
推荐阅读
- php - 如何选择要删除的密钥?PHP 和 JSON
- elasticsearch - 使用时间过滤搜索结果
- c# - 使用 AllowAnonymous 属性在 WebApi 中进行身份验证
- c++ - 如何处理带有指针的类的双(或多)复制构造函数
- php - 插入两个表的外键和主键
- android - 如何在类似 google TEZ 应用程序的 android 中创建三向开关?
- sql - 从每个组中选择 1 行匹配或作为后备
- video - 如何跟踪具有多个像素的 VAST 事件?
- angular - 每 X 秒调用一次函数
- go - 使用Golang中的反射将通过接口{}传入的结构的指针设置为nil?