0

我已经读过,在我的 liferay-plugin-package.properties 文件中指定一个 required-deployment-contexts 条目会自动将 service-jar 复制到我的 portlets WEB-INF/lib 中。

我不能让它工作:

我有 Portlet A 和 Portlet B。

我希望 Portlet B 使用 Portlet A 的服务,而不必将服务 JAR 复制到我的服务器 ext/lib 目录。我读到像这样指定所需的部署上下文会对我有所帮助:

required-deployment-contexts=A-portlet

好吧,至少对我来说它不起作用。服务 - JAR 文件没有被复制,因此我的 B-Portlet 不能使用我的 A-Portlet。

我正在使用 Liferay 6.2 CE GA4 有人有什么建议吗?

4

1 回答 1

2

您能否检查您的 jar 服务是否称为“A-portlet-service.jar”。

确实 Liferay 复制 jar 仅当名称为“required-deployment-contexts-value”-service.jar

您可以检查 PluginsEnvironmentBuilder 类的代码:

protected List<String> getRequiredDeploymentContextsJars(
        File libDir, Properties properties)
    throws Exception {

    List<String> jars = new ArrayList<String>();

    String[] requiredDeploymentContexts = StringUtil.split(
        properties.getProperty("required-deployment-contexts"));

    for (String requiredDeploymentContext : requiredDeploymentContexts) {
        if (_fileUtil.exists(
                libDir.getCanonicalPath() + "/" +
                    requiredDeploymentContext + "-service.jar")) {

            jars.add(requiredDeploymentContext + "-service.jar");
        }
    }

    return jars;
}
于 2015-10-23T13:24:35.337 回答