hybris - 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”文件中,是否有任何顺序?是否会在“b2bcommerce”之前构建“b2bapprovalprocess”,在“b2bstore”之前构建“b2bcommerce”等等......?
解决方案
顺序由扩展的依赖关系定义,使用扩展的 extensioninfo.xml 中的 requires-extension。
如果 C 需要扩展 B,而 B 需要扩展 A,则顺序为 A、B、C。
如果 C 需要扩展 A,而 B 需要扩展 A,则顺序可以是 A、B、C 或 A、C、B。即如果 2 个或更多扩展位于同一级别,则顺序可能是随机的那个水平。
在下面来自acceleratorcms
扩展的示例代码中,我们可以确定cms2lib
oracceleratorservices
将在acceleratorcms
. 但是,我们不能确定哪一个会是第一个:cms2lib
或acceleratorservices
.
<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>
推荐阅读
- amcharts4 - amChart4 - 更改顶部水平类别颜色
- perl - Mojolicious `under` 是如何工作的?
- javascript - JavaScript 游戏中的 if 语句未正确执行
- python - 以编程方式删除 S3 Glacier 恢复
- python-3.x - 如何在不泄露我的秘密凭据的情况下在 GitHub 上发布我的代码?
- javascript - 在嵌套的 Map 函数中添加对象
- python - Python pyinstaller pydocx
- sql - 通过聚合按类别透视数据
- php - PHP从2个foreach中获取值
- google-cloud-platform - 尝试 PyTorch 的 Google Cloud AI 平台教程时出现 RuntimeError 'CUDA error'