【问题标题】:Which is the extension build order in hybris?hybris 中的扩展构建顺序是什么?
【发布时间】:2020-09-03 12:39:20
【问题描述】:

我在“extensioninfo.xml”中有这些扩展:

<extension dir="${HYBRIS_BIN_DIR}/ext-commerce/b2bapprovalprocess"/>
<extension dir="${HYBRIS_BIN_DIR}/ext-commerce/b2bcommerce"/>
<extension dir="${HYBRIS_BIN_DIR}/ext-template/b2bstore"/>
<extension dir="${HYBRIS_BIN_DIR}/ext-commerce/basecommerce"/>
<extension dir="${HYBRIS_BIN_DIR}/ext-content/bmecat"/>

这些扩展是如何构建的?如果我将它们放在同一个“extensioninfo.xml”文件中,是否有任何顺序?是否会在“b2bcommerce”之前构建“b2bapprovalprocess”,在“b2bstore”之前构建“b2bcommerce”等等......?

【问题讨论】:

    标签: hybris


    【解决方案1】:

    顺序由扩展的依赖关系定义,在扩展的 extensioninfo.xml 中使用 requires-extension。

    如果 C 需要扩展 B,而 B 需要扩展 A,则顺序为 A、B、C。

    如果 C 需要扩展 A,而 B 需要扩展 A,则顺序可以是 A、B、C 或 A、C、B。即如果 2 个或多个扩展在同一级别上,则顺序可能在那个级别是随机的。

    在下面来自acceleratorcms 扩展的示例代码中,我们可以确定cms2libacceleratorservices 将在acceleratorcms 之前首先被处理。但是,我们无法确定哪个会是第一个:cms2libacceleratorservices

    <extensioninfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="extensioninfo.xsd">
        <extension abstractclassprefix="Generated" classprefix="AcceleratorCms" managername="AcceleratorCmsManager" managersuperclass="de.hybris.platform.jalo.extension.Extension" name="acceleratorcms">              
            <requires-extension name="cms2lib"/>                
            <requires-extension name="acceleratorservices"/>                
            <coremodule generated="true" manager="de.hybris.platform.acceleratorcms.jalo.AcceleratorCmsManager" packageroot="de.hybris.platform.acceleratorcms"/>            
        </extension>
    </extensioninfo>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-16
      • 2016-01-23
      • 2019-03-27
      • 1970-01-01
      • 1970-01-01
      • 2017-07-24
      相关资源
      最近更新 更多