我想向您询问使用 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/