gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 18:34:39 26 4
gpt4 key购买 nike

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com