0

我是 Liferay 的新手,正在尝试自定义日历-portlet 以实现 2 路同步。我正在使用 Ant 进行构建。

以下是我到目前为止所遵循的步骤。

  1. liferay-plugins-sdk-6.2-ce-ga4-20150416163831865.zip从liferay liferay-portal-tomcat-6.2-ce-ga4-20150416163831865.zip网站下载。
  2. 设置我的 Eclipse 并创建新的插件项目。
  3. 将 的内容添加..\tomcat-7.0.42\webapps\calendar-portlet到 docroot 文件夹 ..\liferay-plugins-sdk-6.2\portlets\Appointment-portlet\docroot

问题:现在我收到编译时错误。以下是详细信息。

  1. 重复的局部变量editCalendarURL- 在view_calendar.jsp. 这里变量editCalendarURL先被赋值,然后被使用。所以,我找不到任何重复的问题。

  2. 重复的局部变量 user -in view_calendar_resources.jsp。在此 jsp 文件中找不到变量“用户”。

我尝试进行 Ant 合并,但仍然收到错误:

Buildfile:\liferay-plugins-sdk-6.2\portlets\Appointment-portlet\build.xml 无法从 \liferay-plugins-sdk-6.2.ivy\ivy-2.4.0.LIFERAY-PATCHED-1-SNAPSHOT 获取资源。 jar:java.util.zip.ZipException:打开 zip 文件时出错 [taskdef] 无法从 \liferay-plugins-sdk-6.2.ivy\ivy-2.4.0.LIFERAY-PATCHED-1-SNAPSHOT.jar 获取资源: [taskdef] java.util.zip.ZipException:打开 zip 文件时出错
[taskdef] at java.util.zip.ZipFile.open(Native Method) [taskdef] at java.util.zip.ZipFile.(Unknown Source) [taskdef] at java.util.zip.ZipFile.(Unknown Source) [ taskdef] at java.util.jar.JarFile.(Unknown Source) [taskdef] at java.util.jar.JarFile.(Unknown Source) [taskdef] at org.apache.tools.ant.AntClassLoader.getResourceURL(AntClassLoader.java :1006) [taskdef] at org.apache.tools.ant.AntClassLoader$ResourceEnumeration.findNextResource(AntClassLoader.java:149) [taskdef] at org.apache.tools.ant.AntClassLoader$ResourceEnumeration.(AntClassLoader.java:110) [taskdef] at org.apache.tools.ant.AntClassLoader.findResources(AntClassLoader.java:953) [taskdef] at org.apache.tools.ant.AntClassLoader.getNamedResources(AntClassLoader.java:922) [taskdef] at org. apache.tools.ant.loader。AntClassLoader5.getResources(AntClassLoader5.java:58) [taskdef] at org.apache.tools.ant.taskdefs.Definer.resourceToURLs(Definer.java:360) [taskdef] at org.apache.tools.ant.taskdefs.Definer。执行(Definer.java:246)
[taskdef] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
[taskdef] at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) [taskdef] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown来源)
[taskdef] 在 java.lang.reflect.Method.invoke(未知来源)
[taskdef] 在 org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) [taskdef] 在 org.apache .tools.ant.Task.perform(Task.java:348)
[taskdef] at org.apache.tools.ant.Target.execute(Target.java:435)
[taskdef] 在 org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:168) [taskdef] 在 org.apache.tools.ant.taskdefs.ImportTask.importResource(ImportTask.java:230) [taskdef ] 在 org.apache.tools.ant.taskdefs.ImportTask.execute(ImportTask.java:162) [taskdef] 在 org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
[taskdef] 在太阳。 reflect.GeneratedMethodAccessor4.invoke(Unknown Source) [taskdef] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[taskdef] at java.lang.reflect.Method.invoke(Unknown Source)
[taskdef] at org.apache.tools .ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) [taskdef] at org.apache.tools.ant.Task.perform(Task.java:348)
[taskdef] at org.apache.tools.ant.Target.execute(Target.java:435)
[taskdef] at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:168) [taskdef] at org.apache.tools.ant.taskdefs.ImportTask.importResource(ImportTask.java:230) [taskdef] at org.apache.tools.ant.taskdefs.ImportTask.execute(ImportTask.java:162) [taskdef] at org. apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
[taskdef] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [taskdef] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[taskdef] 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [taskdef] at java.lang.reflect.Method.invoke(Unknown Source) [taskdef] at org.apache.tools.ant.dispatch.DispatchUtils.execute( DispatchUtils.java:106) [taskdef] at org.apache.tools.ant.Task.perform(Task.java:348)
[taskdef] at org.apache.tools.ant.Target.execute(Target.java:435)
[taskdef] 在 org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:168) [taskdef] 在 org.apache.tools.ant.taskdefs.ImportTask.importResource(ImportTask.java:230) [taskdef ] 在 org.apache.tools.ant.taskdefs.ImportTask.execute(ImportTask.java:162) [taskdef] 在 org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
[taskdef] 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [taskdef] 在 sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[taskdef] 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [taskdef] 在 java .lang.reflect.Method.invoke(Unknown Source) [taskdef] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) [taskdef] at org.apache.tools.ant.Task。
在 org.apache.tools.ant.Target.execute(Target.java:435) 处执行(Task.java:348)[taskdef ]
[taskdef] 在 org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:168) [taskdef] 在 org.apache.tools.ant.taskdefs.ImportTask.importResource(ImportTask.java:230) [taskdef ] 在 org.apache.tools.ant.taskdefs.ImportTask.execute(ImportTask.java:162) [taskdef] 在 org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
[taskdef] 在太阳。 reflect.NativeMethodAccessorImpl.invoke0(Native Method) [taskdef] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[taskdef] 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [taskdef] at java.lang.reflect.Method.invoke(Unknown Source) [taskdef] at org.apache.tools.ant.dispatch.DispatchUtils.execute( DispatchUtils.java:106) [taskdef] at org.apache.tools.ant.Task.perform(Task.java:348)
[taskdef] at org.apache.tools.ant.Target.execute(Target.java:435)
[taskdef] 在 org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:179) [taskdef] 在 org.eclipse.ant.internal.launching.remote.InternalAntRunner.parseBuildFile(InternalAntRunner.java:215) [taskdef] at org.eclipse.ant.internal.launching.remote.InternalAntRunner.run(InternalAntRunner.java:429) [taskdef] at org.eclipse.ant.internal.launching.remote.InternalAntRunner.main(InternalAntRunner.java: 139) [taskdef] 无法从资源 org/apache/ivy/ant/antlib.xml 加载定义。找不到。

名称未定义。行动:检查拼写。行动:检查是否已声明任何自定义任务/类型。行动:检查任何/声明已经发生。此命名空间中尚未定义任何类型或任务

这似乎是一个 antlib 声明。操作:检查实现库是否存在于以下之一中: -E:\eclipse\plugins\org.apache.ant_1.9.2.v201404171502\lib -C:\Users\Abhishek.ant\lib -a 命令行中添加的目录使用 -lib 参数

总时间:4秒

我已经尝试安装 liferay/portal/plugin-sdk 很多次,但什么都没有。

4

1 回答 1

0

将 ..\tomcat-7.0.42\webapps\calendar-portlet 的内容添加到 docroot 文件夹 ..\liferay-plugins-sdk-6.2\portlets\Appointment-portlet\docroot。

我没有使用过这种方式,甚至不确定,但可能这不是导入和自定义任何 portlet 的方式。相反,您很可能需要使用 Hook 来执行您想要实现的目标。如果您是新手并且想要实现这一目标,那么我建议您阅读Hook 的开发指南。完成此操作后,您可以在 Liferay 论坛上找到各种主题,例如thisthis以获得更多帮助。

谢谢。

于 2015-07-27T04:45:11.560 回答