java - 使用 filevault-package-maven-plugin 从包中排除节点
问题描述
我有一个内容包,其中包含我想/content/myApp/home
在 AEM 6.5 项目中排除的节点。由于某种原因,exclude
没有被拾取,并且内容正在被添加到 jcr。我正在使用 AEM 项目构建,mvn clean install -PautoInstallPackage
并且 AEM 项目是使用 AEM 原型构建的。
这是我的包裹META-INF/vault/filter.xml
<?xml version="1.0" encoding="UTF-8"?>
<workspaceFilter version="1.0">
<filter root="/conf/myApp" mode="merge"/>
<filter root="/content/myApp">
<exclude pattern="/content/myApp/home"/>
</filter>
<filter root="/content/dam/myApp" mode="merge"/>
<filter root="/content/experience-fragments/myApp" mode="update"/>
</workspaceFilter>
这是我filevault-package-maven-plugin
的定义方式ui.content/pom.xml
:
<plugin>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>filevault-package-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<allowIndexDefinitions>true</allowIndexDefinitions>
<group>myApp</group>
<name>myApp.ui.content</name>
<packageType>content</packageType>
<accessControlHandling>merge</accessControlHandling>
<properties>
<cloudManagerTarget>none</cloudManagerTarget>>
</properties>
<dependencies>
<dependency>
<groupId>myApp</groupId>
<artifactId>myApp.ui.apps</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
<subPackages>
<subPackage>
<groupId>com.adobe.acs</groupId>
<artifactId>acs-aem-commons-content</artifactId>
<filter>true</filter>
</subPackage>
</subPackages>
</configuration>
</plugin>
以下是父 pom 的声明方式filevault-package-maven-plugin
:
<plugin>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>filevault-package-maven-plugin</artifactId>
<version>1.0.3</version>
<configuration>
<filterSource>src/main/content/META-INF/vault/filter.xml</filterSource>
</configuration>
</plugin>
道路下的filter.xml
生命。src/main/content/META-INF/vault
构建后,我看到节点位于 下/content/myApp/home
,这是我不想要的。
解决方案
根据文档,我最好的猜测是您的排除模式不正确。
该文档指出:
include 和 exclude 元素可以作为可选子元素添加到过滤器元素中,以允许在导入和导出期间对子树进行更细粒度的过滤。它们具有强制模式属性,其格式为regexp。正则表达式与相应或潜在 JCR 节点的完整路径匹配,因此它必须以 /(绝对正则表达式)或通配符(相对正则表达式)开头。
您的过滤器目前看起来不像所需的正则表达式:
<exclude pattern="/content/myApp/home"/>
您能否尝试以下排除模式:
<exclude pattern="/content/myApp/home(.*)"/>
注意(.*)
模式末尾的 。另请注意,这将包括/content/myApp/home-automation
. 因此,对于您想要的结果,您可能需要更多地更改模式。
推荐阅读
- azure - 是否可以在 Azure Functions v2 函数之外访问 appsetting/connection 字符串值?
- java - 有没有办法将表格保存到 Firebase 中?实时还是 Firestore?
- laravel - 使用 Firebase 的 Laravel CRUD
- directshow - 从 avermedia 游戏玩家便携式 C875 捕获 Directshow
- node.js - 如何用好猫鼬骨料
- python - 内存错误和训练部署分离
- python - 使用 train_test_split 与手动拆分数据时的不同结果
- google-maps - 如何在颤振中从谷歌地图获取位置的经纬度坐标?
- c# - 如何使用 XML 中的字符串作为变量来创建按钮?C#
- visual-studio-code - 无法从服务器输出解析远程端口:bash:此 shell 中没有作业控制