除了自定义以外,如何覆盖Hybris平台文件

时间:2019-11-07 11:35:32

标签: hybris

因此,我可以在平台下的customize文件夹下看到许多文件。 除了将其放置在customize文件夹中之外,还有其他通用方法可以使用该平台吗?

如果我们必须重写某些OOTB文件,则有两种方法: 1)如果在某个扩展名中,我们可以创建自定义扩展名并进行更改。 2)将内容添加到custom文件夹并进行ant定制。

如果OOTB文件在平台中怎么办?还有其他办法吗?

我希望在不将其添加到定制文件夹的情况下定制平台。

3 个答案:

答案 0 :(得分:1)

使用构建回调,您甚至可以替换平台jar中的文件。

答案 1 :(得分:1)

您要覆盖的函数/ bean是否通过Spring注入了?

如果不是,,则需要重写一些jar,class或xml。您可以选择ant customizebuildcallbacks.xml

如果是,与从父扩展中覆盖任何其他bean没什么不同。唯一的事情是,由于平台在全球范围内可用,因此您无需创建扩展依赖项。

例如::如果您希望重写DefaultCatalogDao中的某些功能以提供自己的实现。您可以像...

  1. 创建自己的扩展平台相关服务的实现
  2. 为您的自定义bean注入defaultCatalogDao的别名
<alias alias="catalogDao" name="customCatalogDao"/>
<bean id="customCatalogDao" class="......CustomCatalogDao" parent="defaultCatalogDao"/>

对于Commerce Cloud

您也可以使用Commerce Cloud V2中的 customize 文件夹更改平台文件。您需要在自定义存储库中创建一个名为_CUSTOMIZE_的文件夹,然后像在非云版本中一样,添加文件(具有与平台相同的文件夹结构)。

一旦在文件夹上方创建,CCV2生成策略将自动选择并部署它,而无需任何其他配置。 希望对您有帮助!

答案 2 :(得分:1)

您可以简单地复制粘贴文件或编写自己的Shell脚本以执行该文件并将文件复制到平台,但是它与ant custom有何不同。以及为什么您要摆脱标准的混合做法?这会给您带来额外的好处吗?我确信这只会在升级等过程中导致问题。它不是Spring bean注入,您可以在其中告诉您的平台在其他平台上使用您的实现。浪费时间去寻找与产品最佳实践不符的东西是没有意义的。