如何覆盖自定义以外的hybris平台文件

How to override hybris platform files other than customize

所以,我可以在平台下的自定义文件夹下看到很多文件。 除了将其放在自定义文件夹中之外,还有其他方法可以覆盖一般的平台吗?

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

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

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

使用 buildcallbacks 可以替换文件,甚至是平台 jar 中的文件。

你要覆盖的function/bean是通过Spring注入的吗?

如果没有, 并且您需要重写一些 jar,class 或 xml。您可以选择 ant customizebuildcallbacks.xml

如果是, 它与覆盖父扩展中的任何其他 bean 没有什么不同。唯一的问题是您不需要创建扩展依赖项,因为平台在全球范围内可用。

例如: 如果您希望覆盖 DefaultCatalogDao 中的某些函数以提供您自己的实现。你可以这样做...

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

商务云

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

创建上述文件夹后,CCV2 构建策略会自动选择并部署它,无需任何额外配置。 希望对您有所帮助!

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