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

如何在Eclipse中基于多Maven项目生成P3的独立Jar包

生成P3独立可执行Jar包的完整步骤

因为你的三个项目是P1→P2→P3的链式依赖,且都在同一Eclipse工作区,首先得确保本地Maven仓库能识别到P1和P2,再通过Maven插件把所有依赖打包进P3的Jar里。下面给你两种常用的实现方式:

方法一:使用maven-assembly-plugin(简单直观)

这个插件会帮你生成一个包含所有依赖的可执行Jar,步骤如下:

  1. 先安装依赖项目到本地仓库
    在Eclipse中依次操作:

    • 右键P1项目 → Run As → Maven install
    • 右键P2项目 → Run As → Maven install
      这一步是让Maven把P1和P2的Jar包放到本地仓库,这样P3打包时能正确拉取它们的依赖。
  2. 在P3的pom.xml中配置Assembly插件
    打开P3的pom.xml,在<build>标签内添加以下配置(记得替换主类路径为你自己的P3主类全限定名):

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>3.6.0</version>
                <configuration>
                    <!-- 配置可执行Jar的主类 -->
                    <archive>
                        <manifest>
                            <mainClass>com.yourcompany.P3Main</mainClass>
                        </manifest>
                    </archive>
                    <!-- 使用官方预设的打包规则,包含所有依赖 -->
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <!-- 绑定到package阶段,执行打包时自动生成 -->
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    
  3. 生成可执行Jar
    右键P3项目 → Run As → Maven package
    执行完成后,去P3的target目录下找,会看到两个Jar包:

    • P3-<版本号>.jar:仅P3自身的代码
    • P3-<版本号>-jar-with-dependencies.jar:包含P1、P2及所有第三方依赖的独立可执行Jar
      直接用命令运行:java -jar P3-<版本号>-jar-with-dependencies.jar

方法二:使用maven-shade-plugin(更灵活,适合复杂场景)

如果你的项目存在依赖类冲突,或者需要对打包内容做更精细的控制,推荐用Shade插件,步骤类似:

  1. 同样先安装P1和P2到本地仓库
    和方法一的第一步完全一样,确保P1、P2在本地仓库可用。

  2. 在P3的pom.xml中配置Shade插件
    添加以下配置(替换主类路径):

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.5.1</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <transformers>
                                <!-- 指定主类 -->
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>com.yourcompany.P3Main</mainClass>
                                </transformer>
                                <!-- 处理依赖中的服务配置文件,避免被覆盖 -->
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    
  3. 生成可执行Jar
    右键P3项目 → Run As → Maven package
    这次target目录下的P3-<版本号>.jar就是包含所有依赖的可执行Jar,直接用java -jar P3-<版本号>.jar运行即可。

注意事项

  • 确保每个项目的pom.xml依赖配置正确:P2的<dependencies>里要包含P1,P3的<dependencies>里要包含P2
  • 如果Eclipse中Maven依赖显示红叉,右键项目 → Maven → Update Project,刷新依赖
  • 主类的全限定名一定要写对,不然运行时会抛出“找不到主类”的错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:59:40