如何使用maven为liferay插件项目创建服务构建器

时间:2015-06-17 11:19:34

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

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

number_field

但无法添加服务构建器。

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

它没有显示任何插件项目   那么如何添加服务构建器?

2 个答案:

答案 0 :(得分:0)

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

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

  1. JSF Portlet
  2. 布局
  3. 主题
  4. Service Builder
  5. 这不是以下选项的问题

    1. 挂钩
    2. 的Portlet
    3. Vaadin Portlet
    4. 因此,最好的方法是通过支持特定liferay版本的maven原型生成新的服务构建器。 例如,liferay.maven.archetypes:liferay-servicebuilder-archetype:6.2.1 for liferay 6.2.1 GA2版本。

答案 1 :(得分:0)

如果要将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;
  }

}