hybris 中的扩展构建顺序是什么?

Which is the extension build order in hybris?

我在 "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" 文件中,是否有任何顺序? "b2bapprovalprocess" 会在 "b2bcommerce" 之前建造,"b2bcommerce" 会在 "b2bstore" 之前建造等等吗?

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

如果C需要-extension B,B需要-extension 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>