当前位置: 首页 > news >正文

关于maven项目构建的解释

在Idea中使用模块化构建项目

在这里插入图片描述

项目介绍:

  • sky-take-out
    • sky-common
      • pom.xml
    • sky-pojo
      • pom.xml
    • sky-server
      • pom.xml
    • pom.xml

说明

  • sky-server依赖sky-pojo和sky-common,继承sky-take-out
  • sky-pojo继承sky-take-out
  • sky-common继承sky-take-out

由于Idea编译器自动识别引入的模块,所以在Idea中可以运行项目。

在Idea中使用maven打包模块化项目

因为本质上是基于maven进行构建,所以打包时需要保证maven仓库中得有这些模块(依赖),不然构建sky-server项目时会报如下的错误
在这里插入图片描述

未使用maven聚合模块

所以就得按照顺序对sky-take-outsky-commonsky-pojo执行install操作,maven仓库就会出现sky-take-outsky-commonsky-pojo依赖,然后再对sky-server执行package,就能成功。
在这里插入图片描述
在这里插入图片描述

使用maven聚合模块

如果我们想要一次构建多个项目(模块),而不是到多个模块的目录下分别执行mvn命令。

为了能够一次构建sky-commonsky-pojosky-server多个模块,我们在sky-take-out模块中管理了这几个模块,通过该模块构建整个项目的所有模块。
sky-take-out作为一个maven项目,它也必须有它自己的POM。

为了方便用户构建项目、通常将聚合模块放在项目目录的最顶层,其他模块作为聚合模块的子目录存在,这样当用户得到源码的时候,第一眼发现的就是聚合模块的POM不用从多个模块中去寻找聚合模块来构建整个项目。

  • sky-take-out
    • sky-common
      • pom.xml
    • sky-pojo
      • pom.xml
    • sky-server
      • pom.xml
    • pom.xml

当然也可以是平行的目录结构

  • sky-take-out
    • pom.xml
  • sky-common
    • pom.xml
  • sky-pojo
    • pom.xml
  • sky-server
    • pom.xml

如果使用平行目录,聚合模块的POM也需要做相应的修改

<modules>
<module>../item-service</module>
</modules>

如果使用maven聚合模块了的话,对sky-take-out执行package操作,打包时会自动根据依赖的关系顺序进行打包,target就会有打包好的sky-server
注意:这时仓库中不会出现依赖,应该是程序打包好之后自动删了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

http://www.lryc.cn/news/290943.html

相关文章:

  • IMU/捷联惯导常见的术语,以及性能评价标准(附Python解析代码)
  • Debezium发布历史98
  • APUE学习之进程间通信(IPC)(下篇)
  • 【Java 设计模式】行为型之中介者模式
  • MySql 慢SQL配置,查询,处理
  • 算法:分界线
  • STM32单片机基本原理与应用(四)
  • elk之安装和简单配置
  • springboot(ssm环保网站 绿色环保宣传系统Java系统
  • 【MBtiles数据索引和服务发布】GeoServer改造Springboot番外系列二
  • Redis抓取数据到Logstash再推到Elasticsearch集群
  • 【代码随想录-链表】反转链表
  • 32GPIO输入LED闪烁蜂鸣器
  • Qt|QPushButton控件讲解
  • 再学webpack
  • systemd:service与target使用及相关命令
  • FairGuard游戏加固入选《CCSIP 2023中国网络安全行业全景册(第六版)》
  • 文心一言 VS ChatGPT :谁是更好的选择?
  • 七街八巷×实在RPA丨财务凭证录入零出错,效率提升8倍
  • 线性代数----------学习记录
  • Ubuntu如何安装使用Nginx反向代理?
  • Linux系统——正则表达式
  • 【文本到上下文 #9】NLP中的BERT和迁移学习
  • github单文件下载——DownGit
  • Java之Stream的应用与原理分析
  • Git 实战场景过程(工作总结篇)
  • iperf3 打流工具的使用介绍
  • 网络异常案例一_RST
  • 提升工作效率,畅享便捷PDF编辑体验——Adobe Acrobat Pro DC 2023
  • 清空在Linux系统上的操作记录