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

忘是亡心i 2023-01-10 03:51 265阅读 0赞

项目结构为:

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。

发表评论

表情:
评论列表 (有 0 条评论,265人围观)

还没有评论,来说两句吧...

相关阅读