在 Hybris 中如何将一个扩展中的 class 导入到另一个扩展中

In Hybirs how to import a class which is in one extension to another

我正在 Hybris 开发一个内部应用程序。喜欢HMC。我已经创建了一个扩展并在 extensioninfo.xml 中添加了所需的扩展,但是当我尝试在这些所需的扩展中导入 bean 时,我看到了 class cannot be resolved。我已经清理了项目。但我无法解决这个问题。有人可以指导我。我可以根据要求提供更多详细信息。

<extensioninfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="extensioninfo.xsd">

   <extension abstractclassprefix="Generated" classprefix="Sma" managername="SmaManager" managersuperclass="de.hybris.platform.jalo.extension.Extension" name="sma" usemaven="false">
      <!-- for more information on maven managed libraries please consult https://wiki.hybris.com/x/Nq8sDQ -->

      <!-- you should add all required extensions to this list, except platform extensions which are automatically required -->         
      <!-- <requires-extension name="cms"/> -->         

        <requires-extension name="services"/>
      <coremodule generated="true" manager="com.company.sma.jalo.SmaManager" packageroot="com.company.sma"/>

      <webmodule jspcompile="false" webroot="/sma"/>

   </extension>

</extensioninfo>

extensioninfo.xml 文件中,我们只添加扩展依赖项。因此,当您添加新的 Hybris 扩展时,您需要将它添加到您的 localextensions.xml 文件中,这也是必需的扩展。不要错过:

All extensions located in ${HYBRIS_BIN_DIR}/platform/ext are automatically loaded, no need to add them to localextensions.xml file.

然后,ant clean all 将构建您的扩展资源。

如果您无法在 IDE 中解析您的扩展,您需要将它们添加到 build path 手动

[yjavac] 1. ERROR cannot be resolved to a type in Hybris?

扩展可以相互依赖。构建仅在所需扩展可用时才有效。

确保以下步骤顺利进行。


对 Non-Platform 的依赖(不在 /platform/ext 中)扩展

  • 所需的扩展名应该在 localextensions.xml
  • 在依赖扩展extensioninfo.xml(例如<requires-extension name="hmc"/>)中添加所需的扩展
  • 在你的eclipse(IDE)中,在依赖扩展的build path中添加需要的扩展来解决IDE依赖。

    注意: 在 IDE 构建路径中添加所需的扩展不会解决您平台的扩展依赖性。它仅由 extensioninfo.xml

  • 解决
  • 重建系统(ant clean all)


平台扩展的依赖性

默认情况下,所有扩展都依赖于平台扩展(位于/platform/ext)。因此,您不需要在 extensioninfo.xml 文件中为平台扩展指定 requires-extension


Source Post