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

升级Jackrabbit Maven插件后AEM包报MIXED遗留类型错误求助

错误解释与解决方案

错误含义

Package of type 'MIXED' is legacy. Use one of the other types instead! 这个错误源于Jackrabbit FileVault 1.3.2版本的校验器开始严格执行包类型规范:"MIXED"是AEM 6.1及更早版本使用的遗留包类型,在AEM 6.3+对应的FileVault版本中已被废弃,必须使用标准化的包类型替代。

你没在源码中找到"MIXED"字样,大概率是以下场景导致:

  • 旧版本插件默认使用"MIXED"类型,升级后未显式指定新类型,构建时插件自动沿用了遗留默认值
  • 项目依赖的第三方Vault包(如第三方AEM组件)仍使用"MIXED"类型
  • 源码中的properties.xml未定义包类型,构建过程中插件自动生成的产物中包含了该遗留类型

调整建议

1. 显式在Maven插件中指定包类型

在项目pom.xml中,给filevault-package-maven-plugin添加packageType配置,根据包内容选择对应类型:

  • 普通内容包(页面、组件、模板等)用content
  • 应用程序包(OSGi bundle集合)用application
  • 容器包(用于嵌套其他包)用container

示例配置:

<plugin>
    <groupId>org.apache.jackrabbit</groupId>
    <artifactId>filevault-package-maven-plugin</artifactId>
    <version>1.3.2</version>
    <configuration>
        <!-- 显式指定包类型,替换MIXED遗留类型 -->
        <packageType>content</packageType>
        <!-- 其他原有配置保持不变 -->
    </configuration>
</plugin>

多模块项目需确保所有使用该插件的模块都添加此配置。

2. 排查依赖的第三方Vault包

执行Maven命令生成依赖树,定位可能包含"MIXED"类型的第三方包:

mvn dependency:tree -DoutputFile=dependency-tree.txt

在输出结果中筛选类型为zip的依赖(Vault包通常为zip格式),解压这些包查看META-INF/vault/properties.xml中的packageType字段。若发现第三方包使用"MIXED",需:

  • 替换为该包的更新版本(新版本通常会使用标准类型)
  • 若无法替换,可排除该依赖并自行重新打包为标准类型的包

3. 检查构建产物中的properties.xml

查看target目录下构建生成的Vault包内的META-INF/vault/properties.xml,确认是否存在packageType="MIXED"。源码中的配置可能被构建过程覆盖,显式指定插件的packageType会强制覆盖这个值。

4. 清理构建缓存后重新构建

执行以下命令清理旧的构建产物,避免缓存残留导致问题:

mvn clean install

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 01:25:20