在 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
我正在 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
。