推荐的方法来找出Liferay模块提供的课程

时间:2017-10-31 02:53:40

标签: liferay osgi osgi-bundle liferay-7

在我的Liferay模块中,我想使用Liferay的SomeConvenientClass

找出哪个模块提供该课程的推荐方法是什么? 这样我就可以快速将其添加到build.gradle

理想情况下应该:

  • 返回模块的组/名称/版本,
  • 或确信此类在Liferay中不存在或未导出。

到目前为止,我通过反复试验和从野外发现的build.gradle文件进行复制/粘贴,但我正在寻找一种更可靠的方法。 我安装了Liferay,以及完全相同的Liferay版本的源代码,如果有帮助的话。

我尝试了mvnrepository,但它似乎没有返回任何内容,例如:https://mvnrepository.com/search?q=AuditMessageProcessor

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

这是一个选择而不是真实的选择,但这就是我通常做的事情:

  • 熟悉liferay和
    使用的包命名约定 内部应用程序:api,service,web ...
  • 熟悉liferay使用的bundle结构,作为他们的 使用资源文件夹,有时候不那么明显......

考虑到这一点,通常在github上足以导航:portal->(kernel / impl / services / apps) - > app service / api / web ...

但是,当您在代码中度过一天时,这是一个自然的过程。

通常情况下,在线jar定位器有帮助,但通常我只依靠我的IDE。

在我的IDE上,在使用带有运行包的Gogo shell提取依赖关系之后,我已经完成了Spring依赖关系管理的设置。使用Gogo,您将找不到课程,但会列出模块和包。 (Gogo可能就是你正在寻找的btw,因为它能够列出版本号)

最重要的是,如果您需要列表作为正在运行的环境的图片,请使用Gogo。

关于主代码,就是不要相信它!在模块化和捆绑版本化方面,Liferay非常混乱(请阅读此处的依赖关系管理问题:https://www.e-systems.tech/blog/-/blogs/liferay-digital-experience-platform-review-7-0-ga4)。

对于第7步,您需要选择api版本和代码。 api更稳定。您可以对bnd文件的兼容性施加限制,这将导致系统发出警告。在您的环境中,您可以更早地捕获api更改,让我们说,您可以让gradle使用具有版本号的模块但是任何补丁(使用" +"唱歌),当您使用新缓存构建或者如果您更改gradle解析策略以更频繁地下载依赖项,如果构建中断,那么您将看到它。

有用的起点:https://dev.liferay.com/pt/develop/reference/-/knowledge_base/7-0/using-the-felix-gogo-shell

答案 2 :(得分:0)

这就是我的方式,它很慢且手动,所以不要犹豫推荐其他方法。

  1. 如果您还没有Liferay的源代码,请下载。
  2. 运行find . -name SomeConvenientClass.java。如果找不到任何内容,您可以确定该课程不属于Liferay。
  3. 在课程的路径中,找到src文件夹级别,然后在其下方,例如,如果是modules/apps/collaboration/document-library/document-library-web/src/main/java/com/liferay/document/library/web/portlet/action/DLViewMVCRenderCommand.java,则转到modules/apps/collaboration/document-library/document-library-web/
  4. 希望那里有一个bnd.bnd文件,打开它。
  5. 如果该类的包不在Export-Package部分,则要么放弃(将Liferay的代码复制到您的模块中),要么使用一些dark tricks。如果您认为应该导出课程,您可以在https://issues.liferay.com/browse/LPS-70480解释您的案例,以供后代享用。
    • 模块名称是Bundle-SymbolicName
    • 的值
    • 版本是Bundle-Version
    • 的值
    • 群组可能是com.liferay,虽然有时会是com.liferay.portal,但不知道该怎么说。
  6. 生成。有时它失败,因为Maven存储库缺少一个版本,例如com.liferay.document.library.web尽管被DXP修订包30使用,但1.0.11仍然不可用。不确定在这种情况下该怎么做除了选择"类似&# 34;版本并希望最好。