【问题标题】:How to create service builder for liferay plugin project with maven如何使用 maven 为 liferay 插件项目创建服务构建器
【发布时间】:2015-06-17 11:19:34
【问题描述】:

我已经创建了 Liferay 插件项目。并且maven安装也结束了。 它给了

 ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ---------------------------------------------------------------------
[INFO] Total time: 1:29.773s
[INFO] Finished at: Wed Jun 17 15:46:10 IST 2015
[INFO] Final Memory: 34M/151M
[INFO] -----------------------------.

但无法添加服务生成器。

当我尝试添加服务构建器时
new->Liferay 服务构建器。

它没有显示任何插件项目。
那么如何添加服务生成器呢?

【问题讨论】:

  • 请看这里:dev.liferay.com/develop/tutorials/-/knowledge_base/6-2/maven 那是Liferay Maven 开发的官方文档。我认为您不应该采用 new -> Liferay Service 方式,而应使用 maven 方式。说实话,我对 Maven 构建过程不是很了解,但我认为官方文档中应该有提示。

标签: liferay liferay-ide liferay-service-builder


【解决方案1】:

坦率地说,Liferay-Maven 组合在 Eclipse 中并没有得到 Liferay IDE 的完全支持。最初 Liferay IDE 是为仅支持 ANT 而创建的,但由于引入了 maven 支持,因此缺少很多东西。

您提出的这个问题对于以下选项也是相同的。

  1. JSF 小门户
  2. 布局
  3. 主题
  4. 服务生成器

这不是以下选项的问题

  1. 挂钩
  2. Portlet
  3. Vaadin Portlet

因此,最好的方法是通过特定 liferay 版本支持的 maven 原型生成新的服务构建器。 例如 com.liferay.maven.archetypes:liferay-servicebuilder-archetype:6.2.1 用于 liferay 6.2.1 GA2 版本。

【讨论】:

    【解决方案2】:

    如果您想将 vaadin 应用程序添加到现有的 liferay portlet,然后创建新的 LIFERAY-VAADIN 项目,您可以在那里使用“您可以像往常一样继续使用 ServiceBuilder,并使用 XXXXXServiceUtil(或 XXXXXLocalServiceUtil)从您的服务中检索数据)。”您可能还想查看herehere

    例如,这里有一个来自 vaadin 的 DatabaseUtil 类。

    import java.awt.List;
    import java.util.ArrayList;
    
    import com.vaadin.data.util.HierarchicalContainer;
    
    public class DatabaseUtil {
      public static HierarchicalContainer fillTree_db() {
        HierarchicalContainer container = new HierarchicalContainer();
        ArrayList < ArrayList < String >> treeNodes = new ArrayList < ArrayList < String >> ();
    
        try {
    
          List < TREEVIEW > nodes = TREEVIEWLocalServiceUtil.getAllNodes();
    
          for (TREEVIEW node: nodes) {
            String nodename = node.getNodename();
            ArrayList < String > row = new ArrayList < String > ();
            row.add(String.valueOf(node.getNodeid()));
            row.add(node.getNodename());
            row.add(String.valueOf(node.getRootid()));
            container.addItem(nodename);
            treeNodes.add(row);
          }
    
          for (int i = 0; i < treeNodes.size(); i++) {
            int root = 0;
            root = Integer.parseInt(treeNodes.get(i).get(2));
    
            if (root != 0)
              container.setParent(treeNodes.get(i).get(1),
                treeNodes.get(root - 1).get(1));
          }
    
        } catch (Exception e) {
          System.err.println("Exception: " + e.getMessage());
        } finally {}
        return container;
      }
    
    }
    

    【讨论】:

    • 实际上,我是 liferay 的新手,我只需要服务生成器。 liferay 插件项目和 LIFERAY-VAADIN 有什么区别?
    • Liferay 插件 项目意味着如果您正在创建一个新的 Liferay 插件项目。您可以通过启动安装了 Liferay IDE 的 Eclipse 来实现。只需设置 Liferay SDK 和服务器,然后转到 File> New> Liferay Plugin Project LIFERAY-VAADIN 表示如果您想在 liferay CMS 顶部创建 vaadin 应用程序。
    猜你喜欢
    • 2016-09-09
    • 1970-01-01
    • 2014-08-12
    • 1970-01-01
    • 1970-01-01
    • 2016-06-04
    • 1970-01-01
    • 2020-07-07
    • 1970-01-01
    相关资源
    最近更新 更多