是否可以使用合并模式单独部署一个子文件夹,并在工作区中使用默认替换模式放置子文件夹 filter.xml

Is it possible to deploy one child folder alone with merge mode and rest child folders with default replace mode in workspace filter.xml

我的用例是,我在 /apps/myproject 下面有多个文件夹。以前所有文件夹都使用默认替换模式,因此 filter.xml 只是 <filter root="/apps/myproject"/>。但是我必须将一个子文件夹单独设置为合并模式,并用替换保留剩余的文件夹。我们还将在未来添加更多文件夹,因此希望保持 filter.xml 灵活性以容纳未来的文件夹。

一种方法是将定义拆分为:

<filter root="/apps/myproject/folder1"/>
<filter root="/apps/myproject/folder2"/>
.
.
<filter root="/apps/myproject/folder12" mode="merge" />
.
.
<filter root="/apps/myproject/foldern"/>

有没有一种优雅的方法来劫持文件夹 12 并将其排除在合并模式中?

我认为使用排除规则应该很容易。但是当我测试它时,有一个错误。不幸的是,filter.xml 中的规则顺序很重要。特殊文件夹的过滤规则必须在带有排除规则的一般规则之前。

这个命令对我有用:

<?xml version="1.0" encoding="UTF-8"?>
<workspaceFilter version="1.0">
    <filter root="/apps/myproject/folder12" mode="merge"/>
    <filter root="/apps/myproject">
        <exclude pattern="/apps/myproject/folder12(/.*)?"/>
    </filter>
</workspaceFilter>

我还没有检查错误的来源。但可能是从没有模式-属性 的时代向后兼容开始的。在 CQ5.6 中仍然是规则,任何没有 filter.xml 规则的文件夹都会被合并,并且过滤器覆盖的所有路径都会被替换。