springboot多模块工程的打包

本文讲述了在vx_parent工程中,如何处理vx_sale1模块依赖vx_sale2模块时,由于jar包覆盖导致的类和接口缺失问题。通过设置classifier属性创建不同类型的jar,确保vx_sale1引入正确版本的vx_sale2模块。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:
(1)vx_parent为父工程
(2)vx_common为vx_parent子工程,其为其他所有同级模块中引入的公共模块
(3)vx_sale1为vx_parent子工程,其为需要运行的模块
(4)vx_sale2为vx_parent子工程,其为需要运行的模块
(5)vx_sale1、vx_common、vx_sale2为同级模块。
具体架构图如下图所示:
在这里插入图片描述

  1. 将vx_parent模块中的下面这行代码去掉,因为其是父模块,只用于做版本控制和引入基本的依赖,不需要打包成可执行文件
<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
		</plugin>
	</plugins>
</build>
  1. vx_common模块也不需要打包成可执行文件,所以也不需要这个插件。(其他所有不需要打包成可执行文件的模块都不需要这个插件)
  2. 其它所有需要执行的子模块,都需要打包成可执行文件,本文中vx_sale1模块依赖中vx_sale2模块,在不做额外配置的情况下,普通的jar先生成,可执行jar后生成,这种情况下可执行jar会覆盖普通jar,而我们vx_sale1模块中要引入vx_sale2模块的普通jar,就需要在可执行的子模块的pom.xml中写下如下代码
如果在vx_parent中进行全局打包的话;
vx_sale2先打包的话;
vx_sale1想引入vx_sale2中的模块依赖;
但是普通jar却被可执行jar覆盖了;
vx_sale1就引入不成功了,所以打包就不会成功了;
报错为:找不到vx_sale2中的一些类和接口;
解决方案:
4. 这种情况下就需要在可执行的子模块的pom.xml中写下如下代码;
5. 官方告诉我们,你如果不想移代码,好吧,我这样来给你解决,给你打两个jar包,一个用来直接执行,一个用来依赖。
6. 于是,你需要指定一个属性classifier,这个属性为可执行jar包的名字后缀。
7. 比如我设置<classifier>exec</classifier>,原项目名为vx_sale2。
8. 那么会得到两个jar:vx_sale2.jar和vx_sale2-exec.jar。
9. 我们打包vx_sale1的时候会引入vx_sale2.jar。
10. 我们在执行的时候需要执行exec结尾的文件。  
<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
			<configuration>  
                <classifier>exec</classifier>  
            </configuration>
		</plugin>
	</plugins>
</build>
  1. 接下来我们只需要在vx_parent中使用命令(这里是在文件夹中,使用cmd进行打包)
12. mvn clean
13. mvn package
14. 或者直接使用mvn clean package 
  1. 等待一段时间,打包完成之后,我们的可执行jar包就在我们的可执行模块的target文件夹中,此时我们会看到生成两个jar包,一个是.jar,另一个是exec.jar。
  2. 执行的时候在exec.jar页面,打开控制台,输入:
17. java -jar vx_sale2-exec.jar
这样我们的vx_sale2模块就会执行了。
18. java -jar vx_sale1-exec.jar
这样我们的vx_sale1模块就会执行了。
19. 后台执行,这样我们使用`Ctrl + C`就不会中断我们的程序了
nohup java -jar vx_sale1-exec.jar &
nohup java -jar vx_sale2-exec.jar & 
如果想结束进程的话,使用`ps -ef | grep java`查看进程端口号,使用`kill -9 具体端口号`结束掉即可
`具体日志在nohup.out文件中`

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值