如何在Eclipse中基于多Maven项目生成P3的独立Jar包
生成P3独立可执行Jar包的完整步骤
因为你的三个项目是P1→P2→P3的链式依赖,且都在同一Eclipse工作区,首先得确保本地Maven仓库能识别到P1和P2,再通过Maven插件把所有依赖打包进P3的Jar里。下面给你两种常用的实现方式:
方法一:使用maven-assembly-plugin(简单直观)
这个插件会帮你生成一个包含所有依赖的可执行Jar,步骤如下:
先安装依赖项目到本地仓库
在Eclipse中依次操作:- 右键P1项目 → Run As → Maven install
- 右键P2项目 → Run As → Maven install
这一步是让Maven把P1和P2的Jar包放到本地仓库,这样P3打包时能正确拉取它们的依赖。
在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>生成可执行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插件,步骤类似:
同样先安装P1和P2到本地仓库
和方法一的第一步完全一样,确保P1、P2在本地仓库可用。在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>生成可执行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
相关产品推荐
相关产品推荐

