1

我们正在使用插件支持来扩展 ycommercewebservices。这是一个很酷很方便的功能,但是我们遇到了一个问题——我们需要在每台机器上执行 ant task addoninstall来将我们的插件依赖添加到 ycommercewebservices 模板中:

ant addoninstall -Daddonnames="someAddon" -DaddonStorefront.ycommercewebservices="ycommercewebservices"

自动化此过程的最佳方法是什么?

4

3 回答 3

0

您不应该每次都从 ycommercewebservices 构建。这是一个模板扩展,因此以“y”开头。

使用 extgen 从 ycommercewebservices 生成一个新的扩展。将您的插件添加到新扩展中。将此新扩展提交到您的存储库。切勿直接触摸模板。

所以永远不需要自动化这个。

但这只是一个蚂蚁任务。自动化有多难?

于 2014-02-27T14:41:35.297 回答
0

我遇到了同样的问题并创建了一个 ant build 回调来自动安装插件列表。

将以下行添加到要安装插件的扩展的 buildcallbacks.xml 中的 _before_build 宏中:

<!-- 
    We have included installing the relevant addons as a build callback so that each developer does not need to insatll them manually.
    The Hybris installer script cannot be used as it resets the environment configuration (local.properties) every time it runs.
-->

<echo message="Installing the following addons: ${EXTENSION_NAME.requiredAddons}" />

<var name="addonnames" value="${EXTENSION_NAME.requiredAddons}" />
<var name="storefrontTemplates" value="yacceleratorstorefront" />
<var name="addonStorefront.${storefrontTemplates}" value="EXTENSION_NAME" />

<addoninstall />

<!-- 
    This regex replace removes the additional blank lines that the addoninstall macro adds each time it is called.
    It stops the extensioninfo.xml file continuously growing.
-->
<replaceregexp file="${ext.EXTENSION_NAME.path}/extensioninfo.xml"
    match="\n{3,}"
    replace="${line.separator}${line.separator}"
    flags="g"
    byline="false" />

您需要将所有出现的EXTENSION_NAME替换为您的扩展名的真实名称。您还需要在扩展EXTENSION_NAME.requiredAddons的 project.properties 中添加一个新属性,其中包含您希望安装的插件的逗号分隔列表。

使用此宏,插件将在每次构建时重新安装,这应该没问题。我个人不建议您提交安装它们的文件 - 而是提交插件本身并将其安装在每个构建中。

希望这对你有用。

于 2016-02-02T14:47:32.993 回答
0

插件的目的是将其插入任何标准的 hybris 商店。考虑您在开发所有扩展和插件时使用 git。现在,一旦您在任何扩展上安装插件。该扩展的extensioninfo.xml文件被修改。因此,如果你在一台机器上安装了插件,你可以提交这个文件(扩展的extensioninfo.xml)。它将反映在共享此 GIT 代码库的每台机器上。

于 2016-08-26T05:15:54.273 回答