NetBeans开发Maven项目集成jsoup,打包jar运行提示类缺失如何解决
问题原因
默认的maven-jar-plugin仅会打包当前项目的编译产出,不会自动将第三方依赖(比如jsoup)合并到最终生成的jar包中,因此单独运行jar时会找不到依赖类。你提到的「Java Build Path」配置方案仅适用于非Maven管理的普通Java项目,Maven项目的依赖完全通过pom.xml管理,不需要手动配置路径。
解决步骤
修改你的pom.xml的build -> plugins节点,新增maven-assembly-plugin插件配置,修改后的插件部分如下:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.3.2</version> <configuration> <archive> <manifest> <mainClass>DTCCompare.DTCCompareUI</mainClass> </manifest> </archive> </configuration> </plugin> <!-- 新增assembly插件用于打包所有依赖 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>3.3.0</version> <configuration> <descriptorRefs> <!-- 打包成带所有依赖的jar包 --> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <!-- 这里要和你原来的主类路径保持一致 --> <mainClass>DTCCompare.DTCCompareUI</mainClass> </manifest> </archive> </configuration> <executions> <execution> <id>make-assembly</id> <!-- 绑定到package生命周期,执行打包操作时自动触发 --> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
修改完pom.xml后保存,NetBeans会自动刷新项目配置,重新执行打包操作,完成后在target目录下会生成两个jar包:
- 原来的
DTCCompare-1.0-SNAPSHOT.jar:仅包含项目自身代码,无法单独运行 DTCCompare-1.0-SNAPSHOT-jar-with-dependencies.jar:已整合所有第三方依赖,直接运行这个jar即可正常启动程序
内容的提问来源于stack exchange,提问作者R42136
相关产品推荐
相关产品推荐

