关于maven项目构建的解释

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

关于maven项目构建的解释_第1张图片

项目介绍:

  • 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项目构建的解释_第2张图片

未使用maven聚合模块

所以就得按照顺序对sky-take-outsky-commonsky-pojo执行install操作,maven仓库就会出现sky-take-outsky-commonsky-pojo依赖,然后再对sky-server执行package,就能成功。
关于maven项目构建的解释_第3张图片
关于maven项目构建的解释_第4张图片

使用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
注意:这时仓库中不会出现依赖,应该是程序打包好之后自动删了。
关于maven项目构建的解释_第5张图片
关于maven项目构建的解释_第6张图片
关于maven项目构建的解释_第7张图片

你可能感兴趣的:(Maven,maven,java)