Springboot+dubbo聚合项目打包问题
最近使用Springboot项目进行打包时候遇到了下面的错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project customer: Compilation failure: Compilation failure:
[ERROR] /E:/workplace/IdealProjects/comdubbohj/customer/src/main/java/com/dubbo/customer/controller/CustomerController.java:[4,25] 程序包com.dubbo.intface不存在
[ERROR] /E:/workplace/IdealProjects/comdubbohj/customer/src/main/java/com/dubbo/customer/controller/CustomerController.java:[5,22] 程序包com.dubbo.pojo不存在
[ERROR] /E:/workplace/IdealProjects/comdubbohj/customer/src/main/java/com/dubbo/customer/controller/CustomerController.java:[15,12] 找不到符号
[ERROR] 符号: 类 UserService
[ERROR] 位置: 类 com.dubbo.customer.controller.CustomerController
[ERROR] /E:/workplace/IdealProjects/comdubbohj/customer/src/main/java/com/dubbo/customer/service/CustomerServiceImpl.java:[4,25] 程序包com.dubbo.intface不存在
[ERROR] /E:/workplace/IdealProjects/comdubbohj/customer/src/main/java/com/dubbo/customer/service/CustomerServiceImpl.java:[8,45] 找不到符号
[ERROR] 符号: 类 CustomerService
[ERROR] /E:/workplace/IdealProjects/comdubbohj/customer/src/main/java/com/dubbo/customer/service/CustomerServiceImpl.java:[6,44] 程序包com.dubbo.intface不存在
[ERROR] /E:/workplace/IdealProjects/comdubbohj/customer/src/main/java/com/dubbo/customer/controller/CustomerController.java:[19,9] 找不到符号
[ERROR] 符号: 类 User
[ERROR] 位置: 类 com.dubbo.customer.controller.CustomerController
[ERROR] /E:/workplace/IdealProjects/comdubbohj/customer/src/main/java/com/dubbo/customer/service/CustomerServiceImpl.java:[9,5] 方法不会覆盖或实现超类型的方法
[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
发现自己的公用项目的maven依赖是这样的
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
</plugins>
经过查阅资料,springboot的maven插件打包出来的jar包会覆盖原先maven插件打包的jar包,
这个是springboot可直接执行项目的jar包,和原先的jar包不同.如图
有两种解决方式:
1.删除springbootmaven插件,这样会打包出可引用的jar包
2.在springbootmaven插件中添加参数
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<classifier>exec</classifier>
</configuration>
</plugin>
这样会打包出来两个jar包.
分别是普通maven插件打包的jar文件和springbootmaven插件打包的jar(带exe后缀),经测试,两种方法都有效.