如何使用 Maven 为 liferay 插件项目创建服务生成器
How to create service builder for liferay plugin project with maven
我已经创建了 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 服务生成器。
它没有显示任何插件项目。
那么如何添加服务生成器呢?
坦率地说,Liferay-Maven 组合在 eclipse 中并没有得到 Liferay IDE 的完全支持。最初 Liferay IDE 只是为了 ANT 支持而创建的,但是由于引入了 Maven 支持,所以缺少了很多东西。
您提出的这个问题也适用于以下选项。
- JSF 门户组件
- 布局
- 主题
- 服务生成器
这不是以下选项的问题
- 挂钩
- 小门户
- Vaadin Portlet
因此,最好的方法是通过特定 liferay 版本支持的 maven 原型生成新的服务构建器。
例如 com.liferay.maven.archetypes:liferay-servicebuilder-archetype:6.2.1 for liferay 6.2.1 GA2 version.
如果您想将 vaadin 应用程序添加到现有的 liferay portlet,然后创建新的 LIFERAY-VAADIN 项目,您可以在那里使用 "You can continue to use ServiceBuilder as you always have, and retrieve data from your services using XXXXXServiceUtil (or XXXXXLocalServiceUtil)." 您可能还想检查 here, and here。
例如,这里有一个来自 vaadin 的 DatabaseUtil class。
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 插件项目。 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 服务生成器。
它没有显示任何插件项目。
那么如何添加服务生成器呢?
坦率地说,Liferay-Maven 组合在 eclipse 中并没有得到 Liferay IDE 的完全支持。最初 Liferay IDE 只是为了 ANT 支持而创建的,但是由于引入了 Maven 支持,所以缺少了很多东西。
您提出的这个问题也适用于以下选项。
- JSF 门户组件
- 布局
- 主题
- 服务生成器
这不是以下选项的问题
- 挂钩
- 小门户
- Vaadin Portlet
因此,最好的方法是通过特定 liferay 版本支持的 maven 原型生成新的服务构建器。 例如 com.liferay.maven.archetypes:liferay-servicebuilder-archetype:6.2.1 for liferay 6.2.1 GA2 version.
如果您想将 vaadin 应用程序添加到现有的 liferay portlet,然后创建新的 LIFERAY-VAADIN 项目,您可以在那里使用 "You can continue to use ServiceBuilder as you always have, and retrieve data from your services using XXXXXServiceUtil (or XXXXXLocalServiceUtil)." 您可能还想检查 here, and here。
例如,这里有一个来自 vaadin 的 DatabaseUtil class。
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;
}
}