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

Maven Ear Plugin 2.7打包缺失XmlStreamWriter类如何指定plexus-utils版本

问题根因

maven-ear-plugin 2.7默认引入的传递依赖plexus-utils版本为1.1,该版本未打包org.codehaus.plexus.util.xml.XmlStreamWriter类,插件执行generate-application-xml生命周期目标时找不到对应类,直接触发构建失败。
报错信息如下:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-ear-plugin:2.7:generate-application-xml (default-generate-application-xml) on project PROJECT_NAME: Execution default-generate-application-xml of goal org.apache.maven.plugins:maven-ear-plugin:2.7:generate-application-xml failed: A required class was missing while executing org.apache.maven.plugins:maven-ear-plugin:2.7:generate-application-xml: org/codehaus/plexus/util/xml/XmlStreamWriter
解决方法

直接在maven-ear-plugin的配置中显式声明plexus-utils依赖,强制覆盖插件默认的低版本传递依赖,不需要升级maven-ear-plugin本身,适配旧版Maven、Java环境约束。

  • 选择的plexus-utils版本需要满足两个条件:包含缺失的XmlStreamWriter类、兼容当前运行的旧版JDK与Maven,推荐使用3.0.24版本,该版本支持JDK 1.5及以上,无额外高版本依赖要求。

修改后的maven-ear-plugin配置如下:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-ear-plugin</artifactId>
            <version>2.7</version>
            <!-- 新增插件依赖配置,强制指定plexus-utils版本 -->
            <dependencies>
                <dependency>
                    <groupId>org.codehaus.plexus</groupId>
                    <artifactId>plexus-utils</artifactId>
                    <version>3.0.24</version>
                </dependency>
            </dependencies>
            <configuration>
                <finalName>PROJECT_NAME</finalName>
                <displayName>PROJECT_NAME</displayName>
                <modules>
                    <webModule>
                        <groupId>some.group</groupId>
                        <artifactId>some.artifact</artifactId>
                        <bundleFileName>PROJECT_NAME_01.war</bundleFileName>
                        <contextRoot>/PROJECT_NAME_01</contextRoot>
                    </webModule>
                </modules>
            </configuration>
        </plugin>
    </plugins>
</build>
验证方式

配置完成后可执行以下命令查看插件的依赖树,确认plexus-utils版本已替换为指定版本:

mvn dependency:tree -DgroupId=org.apache.maven.plugins -DartifactId=maven-ear-plugin

确认版本无误后再执行ear打包命令即可正常构建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 13:45:33