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

使用Maven部署含外部依赖的可执行Jar包遇到问题

问题解决步骤

1. 核心错误:标签拼写不规范

你遇到的Cannot find 'manifestentries'错误,本质是maven-jar-plugin的XML配置标签写错了——Maven的配置标签严格区分大小写,你写的<manifestentries>必须改成<manifestEntries>(首字母大写,驼峰命名格式)。

2. 清理冗余配置

另外你在<manifest>节点里已经通过<addClasspath>true</addClasspath>自动生成Class-Path,又在<manifestEntries>里手动重复配置了Class-Path,这会导致配置冲突,完全没必要保留手动配置的这部分。

修正后的maven-jar-plugin配置

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
        <archive>
            <manifest>
                <addClasspath>true</addClasspath>
                <classpathPrefix>${project.build.finalName}.lib/</classpathPrefix>
                <mainClass>gestionBar.Controller.Controller.Controller</mainClass>
            </manifest>
            <!-- 若有其他自定义Manifest条目,再用正确的<manifestEntries>标签添加,否则直接删除该节点 -->
        </archive>
    </configuration>
</plugin>

补充:你之前写的<Classpath>也是不规范的,maven-jar-plugin的标准配置项是小写开头的<classpathPrefix>,上面的代码已经修正了这一点。

额外建议:处理log4j依赖的打包问题

如果希望打包后能直接运行(包含log4j等依赖),仅靠maven-jar-plugin不够,可以添加两个插件配合:

1. 添加依赖复制插件(把依赖拷贝到lib目录)

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>copy-dependencies</id>
            <phase>package</phase>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
            <configuration>
                <outputDirectory>${project.build.directory}/${project.build.finalName}.lib</outputDirectory>
            </configuration>
        </execution>
    </executions>
</plugin>

2. 确保maven-jar-plugin的classpathPrefix和上面的输出目录对应

这样打包完成后,target目录下会生成你的项目jar,以及对应的lib目录(包含所有依赖),直接用java -jar 你的jar文件名.jar就能运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 14:47:26