liferay - Liferay SDK 是否可以位于与源代码不同的位置?

标签 liferay

我想向您询问使用 Liferay SDK 进行开发的最佳实践。 我已经下载了 SDK,准备好了 Eclipse,它可以工作,我可以创建新的 portlet 并运行本地 Liferay 实例来测试它。

这是我的情况 - 我拥有的所有源代码都在 Eclipse 工作区中,目前我正在处理的只是 portlet。

Liferay SDK 我的位置与工作区完全不同。假设 ~/dev/liferay_sdk。 Eclipse 工作区位于 ~/workspace。

一开始,它并不是这样工作的。 Eclipse 由于某种原因无法找到或使用 Liferay SDK。当我将 Eclipse/Liferay 配置中的“项目验证”更改为“忽略”“Liferay 插件 SDK 无效”时,它开始正常工作,没有问题。

例如,当需要构建 WAR 时,就会出现下一个问题。 在工作区的 portlet 目录中存在“build.xml”文件。但里面引用了另一个xml文件,该文件应该位于上一个目录,而这个引用的是相对位置上的更多内容等等。

简而言之,它假设您在 Liferay SDK 中拥有 portlet 等。 就像“~/dev/liferay_sdk/portlets”。

我的问题是,我完全错了吗?或者您能给我建议最佳实践吗?

我不想混合 SDK 和代码,这对我来说听起来不对。

感谢您的帮助!

最佳答案

我认为,最佳实践仍然是当您的 portlet 项目位于 Liferay Plugins SDK 目录中时。例如,这样您就可以利用 Eclipse 的 Liferay IDE 插件的所有优势。因为据我了解,Liferay IDE 不允许您在其他位置拥有 portlet 项目。从 Liferay SDK 目录内将项目导入 Eclipse 非常容易,这不是问题。

但是当我尝试将 portlet 项目保存到 Git 存储库时,我也遇到了同样的问题。带有符号链接(symbolic link)的可能解决方案并不能在每个系统上正常工作。因此,我稍微修改了 build.xml 文件,以便能够从任何目录运行 ant 任务。对于 portlet 来说,情况是这样的:

<project name="your-portlet" basedir="." default="deploy">
    <property file="build.properties" />

    <property name="project.dir" value="${liferay.sdk.home}" />

    <import file="${project.dir}/build-common-plugin.xml" />
</project>

请注意,您应该在 build.properties 中定义属性“liferay.sdk.home”,并且它应该是 Liferay Plugins SDK 的路径。

对于其他类型的 Liferay 插件(主题、 Hook 等),您应该导入另一个构建文件来构建该类型的插件。例如,对于主题,它将是:

<import file="${project.dir}/themes/build-common-theme.xml" />

希望你能明白这个想法。 :) 但在做类似的事情之前请三思。

关于liferay - Liferay SDK 是否可以位于与源代码不同的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12195717/

相关文章:

LiferayWindowState.EXCLUSIVE 无法解析为类型?

liferay - 从 Liferay portlet 更改 OG 元标记

java - 服务器生成悬停图像?

java - 如何在 Eclipse 中配置项目以便正确验证 jsps,包括 <%@page import ="...%>in <@include file="...">

java - 将值从弹出 portlet 发送回父 portlet

liferay - 如何在以编程方式创建时向期刊文章添加结构和模板

java - Liferay Junit-Mockito 测试

jsp - 如何检查用户是否在 Liferay 中登录,在 portlet 和主题上下文之外?

java - 生产中的 Liferay 设置

liferay - 在Liferay中以编程方式获取页面的url