Maven 模块化开发
请参照如上章节导航进行阅读
在多人协同开发时,特别是规模较大的项目,为了方便日后的代码维护和管理,我们会将每个开发人员的工作细分到具体的功能和模块上。
随着项目的不断扩大,模块也会越来越多,后续会更加难以维护和扩展,为了应对这种情况后期我们还会采用微服务架构的方式进行开发。
本章节以构建一个 IoT云平台 项目为例,我们可以将模块划分为如下形式:
统一的依赖管理(dependencies)
通用的工具类(commons)
领域模型(domain)
管理后台(admin)
前端控制台(console)
接口模块(api)
整个模块化开发过程主要是在开发思想上稍作了一些转变,只需要按照下面的流程操作即可。
创建一个名为 iot-cloud 的工程,pom.xml 文件如下:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
net.work100.training.stage2
iot-cloud
1.0.0-SNAPSHOT
pom
该项目称之为 Root 项目,主要作用是管理整个工程的全部模块,当有新模块加入时需要在 modules 元素下配置对应的模块目录
创建一个名为 iot-cloud-dependencies 的项目,pom.xml 文件如下:
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
net.work100.training.stage2
iot-cloud
1.0.0-SNAPSHOT
../pom.xml
iot-cloud-dependencies
pom
iot-cloud-dependencies
UTF-8
UTF-8
1.8
5.2.3.RELEASE
4.0.1
1.2
1.2.17
1.7.25
3.5
org.springframework
spring-webmvc
${spring.version}
javax.servlet
javax.servlet-api
${javax.servlet-api.version}
provided
javax.servlet
jstl
${javax.jstl.version}
org.slf4j
slf4j-api
${slf4j.version}
org.slf4j
slf4j-log4j12
${slf4j.version}
org.slf4j
jcl-over-slf4j
${slf4j.version}
org.slf4j
jul-to-slf4j
${slf4j.version}
log4j
log4j
${log4j.version}