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

项目介绍:
- sky-take-out
- sky-common
- pom.xml
- sky-pojo
- pom.xml
- sky-server
- pom.xml
- pom.xml
- sky-common
说明
- 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-out、sky-common、sky-pojo执行install操作,maven仓库就会出现sky-take-out、sky-common、sky-pojo依赖,然后再对sky-server执行package,就能成功。


使用maven聚合模块
如果我们想要一次构建多个项目(模块),而不是到多个模块的目录下分别执行mvn命令。
为了能够一次构建sky-common、sky-pojo、sky-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-common
当然也可以是平行的目录结构
- 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。
注意:这时仓库中不会出现依赖,应该是程序打包好之后自动删了。






















