maven工程打包老是报错_maven多模块项目中子模块可以运行,打包报错

项目结构为:

a95362dd8f2e

项目结构

父模块为:localdeployment-server

子模块为:main

extend也是子模块,并且依赖main模块

今天打包时候发现extend模块报错,找不到依赖的main模块中的类,查了诸多文章后了解到使用spring-boot-maven-plugin进行打包时会自动生成两种jar:

普通jar。

可以直接使用java -jar *运行的可执行jar包。

这两种jar默认是同名的,并且普通的jar会被可执行jar覆盖掉。可执行jar包不同于普通的jar,不可以被其他模块所依赖。所以导致extend模块找不到类。

详情可以参考:

定位到问题后解决就很容易了,只要不让生成的可执行jar将普通jar覆盖掉就可以了,我门将其改个名称,将pom文件中打包插件配置改为:

org.springframework.boot

spring-boot-maven-plugin

exec

打包成功:

[INFO] Reactor Summary:

[INFO]

[INFO] localdeployment-server 1.0-SNAPSHOT ................ SUCCESS [ 0.009 s]

[INFO] main 0.0.1-SNAPSHOT ................................ SUCCESS [ 13.142 s]

[INFO] extend 1.0-SNAPSHOT ................................ SUCCESS [ 0.770 s]

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 14.792 s

[INFO] Finished at: 2020-07-29T10:03:27+08:00

[INFO] ------------------------------------------------------------------------

这样打包后就有两个jar了:

a95362dd8f2e

打包后的jar包

main-0.0.1-SNAPSHOT-exec.jar 就是我们的可执行jar。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值