Maven多模块项目,适用于一些比较大的项目,通过合理的模块拆分,实现代码的复用,便于维护和管理。
尤其是一些开源框架,大多是采用多模块的方式,提供插件集成,用户可以根据需要 配置指定的模块。
spring-context
spring-beans
spring-webmvc
spring-jdbc
那么如何创建多模块项目呢?
我们用eclipse举例,其他编程工具大同小异
1、先创建一个简单的maven工程 记得勾选create a simple project ,然后在packaging选项中选择 pom ,
而不是 jar 或则 war
2、再次在父工程名---》maven Project,然后选择新建一个maven module工程 ,填写信息点击完成,这个就是子模块。
对于一个多模块项目,如何管理项目依赖的版本?
通过在父模块中声明dependencyManagement, 然后在 <dependency> 写明 groupId artifactId version 等信息
然后在子模块通过<parent>元素指定父模块,
子模块 <dependency>中元素 只定义groupId和artifactId,不要写 version
自动使用父模块的version,这样统一整个项目的依赖的版本。
比如我们使用springboot 时候
<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
</parent>
我们写很多springboot相关的jar包就不用指定version了,也保证了版本的统一
dependencyManagement只会影响现有依赖的配置,但不会引入依赖。
能够保证所有模块使用的相同jar包依赖配置是一致的
pluginManagement
pluginmanagement标签一般用在父pom中,子元素可以依赖父元素的 版本、配置等信息,
只需指定groupId和artifactId即可。 例如: 编译源代码 maven-compiler-plugin
模块间也可以相互依赖
<!-- 声明依赖模块-->
<modules>
<module>springboot-web</module>
</modules>
通过在父模块中声明dependencyManagement,声明groupId artifactId version 等信息,管理多模块项目依赖的版本 然后在子模块通过元素指定父模块,子模块 元素只定义groupId和artifactId,自动使用父模块的version