先说一下创建子maven工程的步骤
继承
继承的作用
:在父工程中,统一管理项目中的依赖信息,进行统一的版本控制
继承的背景是:对一个大型的项目进行了模块拆分,一个project下,创建了很多的module,每个module都需要配置自己的依赖信息,通过,在父工程中,为整个项目维护依赖信息的组合,既保证了整个项目的使用规范、准确的jar包,又能够将以往的经验沉淀下来,节约时间。
继承的语法
:
父工程studytwo:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" 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"><modelVersion>4.0.0</modelVersion><groupId>com.atguigu</groupId><artifactId>studytwo</artifactId><version>1.0-SNAPSHOT</version>聚合:Maven聚合,是指将多个项目,组织到一个父项目中,通过触发父工程的构建,统一按顺序触发子工程构建的过程。聚合的作用:1、统一管理子项目构建,通过聚合,可以将多个子项目组织在一起,方便管理和维护2、优化构建顺序,通过聚合,可以对多个项目进行顺序控制,避免出现构建依赖混乱导致构建失败的情况另:这是创建子maven工程后idea自动添加的,这里说明此工程下,有2个子工程:shop-user、shop-order。这里的内容就是要统一管理的那些子工程的artifactId<modules><module>shop-order</module><module>shop-user</module></modules>当前工程作为父工程,他要管理子工程,所以打包方式必须是:pom<packaging>pom</packaging>导入依赖,在此处导入,所有的子工程都有相应的依赖<dependencies></dependencies>声明依赖,不会下载依赖,可以被子工程继承版本号<dependencyManagement><dependencies><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.15.2</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.28</version></dependency></dependencies></dependencyManagement></project>
子工程shop-user:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"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">这是idea自动有的,parent标签就是来指定继承父工程的gav属性<parent><artifactId>studytwo</artifactId><groupId>com.atguigu</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion>g v 属性,也继承父工程,可以自定义<artifactId>shop-user</artifactId><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency></dependencies></project>
子工程shop-order:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"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"><parent><artifactId>studytwo</artifactId><groupId>com.atguigu</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion>g v 属性,也继承父工程,可以自定义<artifactId>shop-order</artifactId><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId></dependency></dependencies></project>