Maven build打包,类找不到,找不到引用的那个项目里面的类

当一个公共项目被打成可执行jar,其他项目引用时会出现类找不到的错误。解决方法是在公共项目的pom.xml中调整配置,使其成为普通jar,并确保主项目正确引用公共项目。在打包过程中,需先用maven install打包公共项目,再用maven build打包主项目,以避免类找不到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[ERROR] /D:/cloud-2/siban/system-manage/src/main/java/com/jeesite/modules/sys/web/user/EmpUserController.java:[39,38] 程序包com.jeesite.modules.crm.entity不存在
[ERROR] /D:/cloud-2/siban/system-manage/src/main/java/com/jeesite/modules/sys/web/user/EmpUserController.java:[40,39] 程序包com.jeesite.modules.crm.service不存在
[ERROR] /D:/cloud-2/siban/system-manage/src/main/java/com/jeesite/modules/sys/web/user/EmpUserController.java:[43,38] 找不到符号
[ERROR]   符号:   类 Company
[ERROR]   位置: 程序包 com.jeesite.modules.sys.entity
[ERROR] /D:/cloud-2/siban/system-manage/src/main/java/com/jeesite/modules/sys/web/user/EmpUserController.java:[44,38] 找不到符号
[ERROR]   符号:   类 EmpUser
[ERROR]   位置: 程序包 com.jeesite.modules.sys.entity
[ERROR] /D:/cloud-2/siban/system-manage/src/main/java/com/jeesite/modules/sys/web/user/EmpUserController.java:[45,38] 找不到符号
[ERROR]   符号:   类 Employee
[ERROR]   位置: 程序包 com.jeesite.modules.sys.entity
[ERROR] /D:/cloud-2/siban/system-manage/src/main/java/com/jeesite/mo
### 解决Maven项目构建不到或无法加载主的问题 当遇到`Error: Could not find or load main class`错误,通常是因为项目的配置文件或者打包过程存在问题。以下是几种可能的原因以及解决方案: #### 1. 配置`pom.xml` 确保`pom.xml`中包含了正确的插件设置来指定应用程序入口点。对于Spring Boot应用来说,应该使用`spring-boot-maven-plugin`来进行打包操作[^1]。 ```xml <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>${start-class}</mainClass> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build> ``` 这里`${start-class}`应替换为实际的应用程序启动全限定名。 #### 2. 设置MANIFEST.MF中的Main-Class属性 如果不是Spring Boot项目,则需要手动编辑JAR包内的`META-INF/MANIFEST.MF`文件,在其中加入如下行以指明主位置: ``` Manifest-Version: 1.0 Main-Class: com.example.MainApplication ``` 也可以通过命令行参数传递给`mvn package`指令实现自动化处理: ```bash -Dmanifest.mainClass=com.example.MainApplication ``` #### 3. 检查编译后的class文件路径 确认源代码目录结构正确无误,并且经过正常编译后生成的目标`.class`文件位于预期的位置下。特别是注意IDEA等开发工具可能会改变默认输出目录的情况。 #### 4. 清理并重新构建工程 有候缓存残留可能导致问题持续存在,尝试执行清理再构建的操作可以帮助排除此干扰因素: ```bash mvn clean install ``` 这会先清除之前所有的编译产物后再进行全新一轮的依赖解析与组装流程。 #### 5. 查看详细的堆栈跟踪信息 若上述方法均未能解决问题,可以考虑增加Java虚拟机运行选项`-verbose:class`查看更详尽的日志记录以便进一步诊断具体原因所在。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值