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

Maven项目打包后如何运行及导出依赖包供无Maven环境使用

问题1:如何通过Maven直接运行项目

你可以直接使用Maven的exec插件完成运行,Maven会自动管理所有依赖的版本和classpath配置,无需你手动指定依赖路径:

  • 临时运行无需修改pom.xml,直接执行以下命令即可:
mvn exec:java -Dexec.mainClass="com.mycompany.app.App"
  • 如果需要频繁运行,可以在pom.xml的<build><plugins>节点下添加exec插件的固定配置:
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <version>3.1.0</version>
    <configuration>
        <mainClass>com.mycompany.app.App</mainClass>
    </configuration>
</plugin>

配置完成后,后续只需要执行mvn exec:java就可以直接启动项目。

问题2:如何交付给未安装Maven的用户

有两种常用的实现方案:

方案1:收集所有依赖到独立文件夹

就是你预期的Maven功能,直接使用dependency插件的copy-dependencies目标即可:
执行命令:

mvn dependency:copy-dependencies

执行完成后,所有项目依赖的jar包都会自动导出到target/dependency目录下。你只需要把以下文件打包交给用户:

  • 你项目编译生成的jar包(位于target目录下,一般命名为{artifactId}-{version}.jar)
  • 整个dependency文件夹
    用户只需要本地安装有JRE,执行以下命令即可启动:
  • Windows系统:
java -cp 你的项目jar包名.jar;dependency/* com.mycompany.app.App
  • Linux/macOS系统:
java -cp 你的项目jar包名.jar:dependency/* com.mycompany.app.App

你也可以提前写好对应系统的启动脚本,和文件一起交付,用户直接运行脚本即可。

方案2:打包为可执行Fat Jar

更简单的方式是把所有依赖和你自己的代码打包到同一个可执行jar包中,用户只需要执行java -jar xxx.jar就能启动,不需要额外处理依赖。
可以用maven-assembly-plugin实现,在pom.xml的<build><plugins>节点下添加如下配置:

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
        <archive>
            <manifest>
                <mainClass>com.mycompany.app.App</mainClass>
            </manifest>
        </archive>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
    </configuration>
    <executions>
        <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>

配置完成后执行mvn clean package,会在target目录下生成后缀为jar-with-dependencies的jar包,直接把这个文件交给用户即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:45:01