为了防止某个模块(dao)更新了,重新编译了,导致和其他模块不兼容,需要用一个root来管理其他几个模块
<groupId>com.heimagroupId>
<artifactId>ssmartifactId>
<version>1.0-SNAPSHOTversion>
<packaging>pompackaging>
<modules>
<module>ssm_pojomodule>
<module>ssm_daomodule>
<module>ssm_servicemodule>
<module>ssm_controllermodule>
modules>
构建顺序按照依赖顺序
不同模块依赖的库版本不同,很容易导致不兼容的问题
我们让父工程统一管理子工程依赖的版本即可,子工程继承父工程的版本
父工程的pom.xml
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.itheimagroupId>
<artifactId>ssm_pojoartifactId>
<version>1.0-SNAPSHOTversion>
dependency>
<dependency>
<groupId>com.itheimagroupId>
<artifactId>ssm_daoartifactId>
<version>1.0-SNAPSHOTversion>
dependency>
<dependency>
<groupId>com.itheimagroupId>
<artifactId>ssm_serviceartifactId>
<version>1.0-SNAPSHOTversion>
dependency>
<dependency>
<groupId>com.itheimagroupId>
<artifactId>ssm_controllerartifactId>
<version>1.0-SNAPSHOTversion>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-contextartifactId>
<version>5.1.9.RELEASEversion>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-aopartifactId>
<version>5.2.13.RELEASEversion>
dependency>
dependencies>
dependencyManagement>
子工程的pom.xml
<parent>
<groupId>com.itheimagroupId>
<artifactId>ssmartifactId>
<version>1.0-SNAPSHOTversion>
<relativePath>../ssm/pom.xmlrelativePath>
parent>
<groupId>com.itheimagroupId>
<artifactId>ssm_pojoartifactId>
<version>1.0-SNAPSHOTversion>
父工程写了依赖的版本号,子工程就不用写了,直接引用即可(如果不引用,子工程就不会依赖对应的包)。由于子工程都是继承父工程的依赖,可以减少版本冲突
继承与聚合
作用
相同点
不同点
父工程ssm的pom.xml
<groupId>com.itheimagroupId>
<artifactId>ssmartifactId>
<version>1.0-SNAPSHOTversion>
<properties>
<spring.version>5.1.9.RELEASEspring.version>
<junit.version>4.12junit.version>
<properties/>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.itheimagroupId>
<artifactId>ssm_pojoartifactId>
<version>${version}version>
dependency>
<dependency>
<groupId>com.itheimagroupId>
<artifactId>ssm_daoartifactId>
<version>${version}version>
dependency>
<dependency>
<groupId>com.itheimagroupId>
<artifactId>ssm_serviceartifactId>
<version>${version}version>
dependency>
<dependency>
<groupId>com.itheimagroupId>
<artifactId>ssm_controllerartifactId>
<version>${version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-contextartifactId>
<version>${spring.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-aopartifactId>
<version>${spring.version}version>
dependency>
dependencies>
dependencyManagement>
SNAPSHOT(快照版本)
RELEASE(发布版本)
子工程的pom.xml
<parent>
<groupId>com.itheimagroupId>
<artifactId>ssmartifactId>
<version>1.0-SNAPSHOTversion>
<relativePath>../ssm/pom.xmlrelativePath>
parent>
<groupId>com.itheimagroupId>
<artifactId>ssm_pojoartifactId>
<version>2.1.13-RELEASEversion>
build之后,仓库中就会生成对应的包
pom.xml中配置的属性,其实是可以在配置文件中通过${}
的方式使用的
我们希望xml中统一管理配置信息,我们先在ssm的pom.xml中自定义属性变量
ssm的pom.xml中配置资源文件路径,表示资源文件使用pom.xml中的变量
把../ssm_dao
该层${project.basedir}
filtering设置为true,表示该目录需要参与build,该目录下可以使用xml中配置的变量
不同环境加载不同配置,不要随意更改配置
ssm的pom.xml中多环境配置如下,当然也不能少配置资源文件的路径信息
<profiles>
<profile>
<id>release_envid>
<properties>
<jdbc.url>jdbc:mysql://192.168.100.200:3306/ssm_dbjdbc.url>
<properties/>
profile>
<profile>
<id>dep_envid>
<properties>
<jdbc.url>jdbc:mysql://192.168.100.201:3306/ssm_dbjdbc.url>
<properties/>
<activation>
<activeByDefault>trueactiveByDefault>
activation>
profile>
profiles>
<resources>
<resource>
<directory>${project.basedir}/src/main/resourcesdirectory>
<filtering>truefiltering>
resource>
resources>
添加install参数
我们现在执行install,ssm_dao的properties中的url就是jdbc:mysql://192.168.100.201:3306/ssm_db
由于声明周期都是插件在执行,我们配置test相关插件即可