springBoot聚合父工程的项目多模块打包及解决启动jar包时出现“没有主清单属性”的错误
今天多模块打包遇到一点小坑,特意分享给你们,最初在IDEA中的Maven中的夫工程中执行Package命令打包之后,执行打出的jar包,却出问题了,问题是:“没有主清单属性”,原因:可能打包的时候没有配置启动类,或者其他配置没有填写,今天解决一下吧
1、 我的项目工程目录如下
备注:标红的是web模块(项目中需要启动的模块),只需要他们的jar包
2、打包过程
(1)父模块不需要打包 和 对应不需要打包的模块的pom文件不需要写,只在需要启动(打包)的模块的pom.xml中这样配置:
原因:需要打包主模块要找到对应包中的依赖,打包了就找不到了
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
(2)需要启动(打包)模块要配置程序入口(找到启动类):
<configuration>
<fork>true</fork>
<!-- 如果没有该配置,devtools不会生效 -->
<!-- 指定该Main Class为全局的唯一入口 -->
<mainClass>com.zhangziwei.property.webApplication</mainClass>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中-->
</goals>
</execution>
</executions>
即:
3、打包
进入Maven的父目录下的Lifecycle执行package命令进行打包,然后在target找到你需要启动(打包)的模块的jar包即可,在所在目录打开命令行执行 **java -jar 【Jar包的名字】**即可启动