首页 > 编程知识 正文

maven打包后找不到引用类,maven settings默认配置

时间:2023-05-04 12:22:00 阅读:183582 作者:3959

1 报错 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile) on project ly-item-interface: Compilation failure: Compilation failure:[ERROR] /D:/javacode/idea/leyou/ly-item/ly-item-interface/src/main/java/com/leyou/item/api/GoodsApi.java:[3,28] 程序包com.leyou.common.dto不存在[ERROR] /D:/javacode/idea/leyou/ly-item/ly-item-interface/src/main/java/com/leyou/item/api/GoodsApi.java:[4,27] 程序包com.leyou.common.vo不存在[ERROR] /D:/javacode/idea/leyou/ly-item/ly-item-interface/src/main/java/com/leyou/item/api/GoodsApi.java:[23,5] 找不到符号[ERROR] 符号: 类 PageResult[ERROR] 位置: 接口 com.leyou.item.api.GoodsApi[ERROR] /D:/javacode/idea/leyou/ly-item/ly-item-interface/src/main/java/com/leyou/item/api/GoodsApi.java:[37,42] 找不到符号[ERROR] 符号: 类 CartDTO[ERROR] 位置: 接口 com.leyou.item.api.GoodsApi[ERROR] -> [Help 1][ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.[ERROR] Re-run Maven using the -X switch to enable full debug logging.[ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles:[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException[ERROR] [ERROR] After correcting the problems, you can resume the build with the command[ERROR] mvn <goals> -rf :ly-item-interfaceProcess finished with exit code 1 1.1 根本原因(以其中一个error为例分析) ly-item-interface: Compilation failure: Compilation failure:[ERROR] com/leyou/item/api/GoodsApi. 程序包com.leyou.common.dto不存在

ly-item-interface在打包时要依赖com.leyou.common包
就很奇怪 明明这个包这个类都是存在的啊,为什么就是找不到???
其次做了几项检查:

pom.xml依赖是否成功引入或者存在不存在单词拼写错误(一般情况不会有错啊)common包中dto是否成功import (这么简单必然成功import了啊…) 2 解决办法

最终原因,其实就是没有依赖。。。原因就是spring-boot-maven-plugin
这个坑!!!用这个插件打包的Jar包可以直接运行,但是不可依赖!!!所以interface自始至终就没有依赖,自然会说找程序包不存在或者找不到类

最后修改pom.xml的依赖:

<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <classifier>execute</classifier> </configuration> </plugin> </plugins> </build>

ok!

3 总结

一个微服务通常有两个子module,一般一个写实体类和接口一个写实现方法

建议

common类或者实体类或者被被依赖的类,打包插件配置为: <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <phase>none</phase> </execution> </executions> <configuration> <classifier>execute</classifier> </configuration> </plugin> </plugins></build>

<executions> <execution> <phase>none</phase> </execution></executions>

是为了解决Unable to find main class的问题,当然,如果写了简单的main函数这几行可以不写~

其他类或者微服务可以正常配置: <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins></build> 4 最后


一晚上将近三个小时,碰到打包时的各种奇葩问题(为什么老师一按install好好的,我就???),还好最后看到了BUILD SUCCESS,等待他打包的过程好紧张,就怕有错,哭辽~

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。