如何使用过滤器排除AEM包中的子节点
我正在创建一个AEM内容包,生成的zip具有必需的META-INF目录和filter.xml 包中包含的内容组织如下:如何使用过滤器排除AEM包中的子节点,aem,Aem,我正在创建一个AEM内容包,生成的zip具有必需的META-INF目录和filter.xml 包中包含的内容组织如下: /jcr_root/apps/appgroup/myapp/components /jcr_root/apps/appgroup/myapp/i18n/en_us.xml /jcr_root/apps/appgroup/myapp/i18n/es_mx.xml /jcr_root/apps/appgroup/myapp/templates filter.xml如下所示: &l
/jcr_root/apps/appgroup/myapp/components
/jcr_root/apps/appgroup/myapp/i18n/en_us.xml
/jcr_root/apps/appgroup/myapp/i18n/es_mx.xml
/jcr_root/apps/appgroup/myapp/templates
filter.xml如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<workspaceFilter version="1.0">
<filter root="/apps/appgroup/myapp">
<exclude pattern="/apps/appgroup/myapp/i18n(/.*)?" />
</filter>
</workspaceFilter>
尽管有排除模式,但i18n节点在安装包时仍会部署到CRX中。过滤器不应该排除i18n节点吗
最后,我只想部署en_us
节点,并让过滤器阻止任何其他语言
我的理解是,在安装过程中,而不是在编译过程中,需要考虑过滤器。这是否正确?在生成包而不是安装包时应用过滤器。在排除的情况下,它不应该由您的软件包安装,但这也意味着如果已经存在,它也不会被删除!它的行为应该像包不接触排除过滤器覆盖的区域一样 来自文档*:
- 要包含除表单组件之外的所有应用程序脚本,请执行以下操作:
- 根路径:
/apps/myapp
- 规则:排除:
/apps/myapp/components/form(/.*)
- 根路径:
编辑:使用Maven捆绑包,您可以使用声明将元素指定为排除,以避免将内容添加到Zip中,例如:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>jcr_root/apps/appgroup/myapp/i18n</exclude>
<exclude>jcr_root/apps/appgroup/myapp/i18n/**/*.*</exclude>
</excludes>
</resource>
</resources>
</build>
src/main/resources
jcr_root/apps/appgroup/myapp/i18n
jcr_root/apps/appgroup/myapp/i18n/****
Maven在构建时可能会忽略filter.xml
&一旦内容在包中,CQ就会安装它
EDIT2:*Day.com关闭后,文档中不再包含初始示例,但应仍然适用。更新的文档是在生成包而不是安装包时应用过滤器。在排除的情况下,它不应该由您的软件包安装,但这也意味着如果已经存在,它也不会被删除!它的行为应该像包不接触排除过滤器覆盖的区域一样 来自文档*:
- 要包含除表单组件之外的所有应用程序脚本,请执行以下操作:
- 根路径:
/apps/myapp
- 规则:排除:
/apps/myapp/components/form(/.*)
- 根路径:
编辑:使用Maven捆绑包,您可以使用声明将元素指定为排除,以避免将内容添加到Zip中,例如:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>jcr_root/apps/appgroup/myapp/i18n</exclude>
<exclude>jcr_root/apps/appgroup/myapp/i18n/**/*.*</exclude>
</excludes>
</resource>
</resources>
</build>
src/main/resources
jcr_root/apps/appgroup/myapp/i18n
jcr_root/apps/appgroup/myapp/i18n/****
Maven在构建时可能会忽略filter.xml
&一旦内容在包中,CQ就会安装它
EDIT2:*Day.com关闭后,文档中不再包含初始示例,但应仍然适用。更新的文档是在生成包而不是安装包时应用过滤器。在排除的情况下,它不应该由您的软件包安装,但这也意味着如果已经存在,它也不会被删除!它的行为应该像包不接触排除过滤器覆盖的区域一样 来自文档*:
- 要包含除表单组件之外的所有应用程序脚本,请执行以下操作:
- 根路径:
/apps/myapp
- 规则:排除:
/apps/myapp/components/form(/.*)
- 根路径:
编辑:使用Maven捆绑包,您可以使用声明将元素指定为排除,以避免将内容添加到Zip中,例如:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>jcr_root/apps/appgroup/myapp/i18n</exclude>
<exclude>jcr_root/apps/appgroup/myapp/i18n/**/*.*</exclude>
</excludes>
</resource>
</resources>
</build>
src/main/resources
jcr_root/apps/appgroup/myapp/i18n
jcr_root/apps/appgroup/myapp/i18n/****
Maven在构建时可能会忽略filter.xml
&一旦内容在包中,CQ就会安装它
EDIT2:*Day.com关闭后,文档中不再包含初始示例,但应仍然适用。更新的文档是在生成包而不是安装包时应用过滤器。排除在外,它不应该这样做