You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AEM Maven项目执行mvn命令后新增组件被删除问题咨询

解决AEM中Maven部署后新组件被删除的问题

这种情况我之前在AEM项目里也碰到过几次,大概率是你的新组件没被正确包含到Maven的构建包中,导致部署时被现有包的内容覆盖了。下面给你一步步排查和解决的方法:

1. 确认新组件的存放路径是否正确

AEM Archetype生成的项目中,组件必须放在ui.apps/src/main/content/jcr_root/apps/<你的项目名>/components目录下,和其他默认组件保持同级。比如你创建了一个custom-card组件,正确路径应该是:

ui.apps/src/main/content/jcr_root/apps/my-aem-project/components/custom-card

如果放在其他目录,Maven打包时不会自动包含这些文件,部署后自然看不到新组件。

2. 检查Maven构建配置是否包含组件文件

打开ui.apps模块的pom.xml,确认资源配置是否正确包含了src/main/content下的所有文件。Archetype生成的项目一般已经有这个配置,但可以核对一下:

<build>
    <resources>
        <resource>
            <directory>src/main/content</directory>
            <filtering>true</filtering>
            <excludes>
                <exclude>**/.vlt</exclude>
                <exclude>**/.vltignore</exclude>
            </excludes>
        </resource>
    </resources>
    <!-- 其他构建配置 -->
</build>

如果这里的配置漏掉了组件所在的路径,就会导致文件不被打包。

3. 先打包验证组件是否被包含

不要直接部署,先执行mvn clean package命令,然后打开ui.apps/target目录下生成的.zip包,检查里面是否包含你的新组件文件夹和对应的.content.xml、cq:dialog.xml等文件。如果没有,说明文件没被纳入打包范围,回头检查路径和pom配置。

4. 尝试增量部署单个组件

如果不想每次都部署整个包(避免覆盖风险),可以用命令只部署新组件的路径:

mvn clean install -PautoInstallPackage -Dvlt.path=/apps/<你的项目名>/components/custom-card

这样只会把指定路径的组件部署到AEM,不会影响其他内容。

5. 检查AEM日志排查安装失败

如果以上步骤都没问题,但组件还是没出现,去AEM的日志系统(/system/console/slinglog)查看错误日志,看看是不是组件的XML文件有语法错误(比如标签未闭合、属性写错),导致部署时安装失败,看起来像是“被删除”了。

内容的提问来源于stack exchange,提问作者Kunal Dhingra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:09:28