问题:
在多模块下,直接使用maven进行选择父模块进行打包,会出现子模块分别进行打包,而父模块未打包的情况,这是正常的,因为父模块打包方式是pom,子模块打包方式是jar,所以不会出现父模块的打包。
但我们想实现运行一个jar包就可以运行整个项目时,我们该怎样进行操作呢?
解决办法:
我们使用多模块,肯定有一个模块是管理启动类的,也就是springboot的启动类所在的moudle,我们要在这个模块的pom文件中,添加一段管理maven打包的代码:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.5.6</version>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.1</version>
<executions>
<execution>
<id>compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>testCompile</id>
<phase>test-compile</phase>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>utf8</encoding>
</configuration>
</plugin>
</plugins>
</build>
如果pom文件出现了报错,那就改变一下spring-boot-maven-plugin的版本,尽量选择旧的版本,都没报错后,我们clean一下父模块的maven,然后选择打包,等待打包完成,在启动模块下target文件夹中,找到一个打包的jar,这个便是我们可以直接运行的jar包。
测试:
将其复制出去任何一个位置,在当前位置打开cmd,直接运行java -jar 文件名.jar,如果成功则会直接运行成功,我们可以直接测试是否有响应了,可以再postman或浏览器直接测试,成功即打包成功。