maven进阶总结
- 1. maven之间可以互相导包
- 2. maven的依赖是具有传递性的
- 3. 可选依赖和排除依赖:
- 4. 继承与聚合
- 4.1聚合
- 4.2 继承
- 5. 属性的配置与使用
- 6. 版本管理
- 8. 多环境开发和跳过测试(了解)
1. maven之间可以互相导包
从当前maven的pom文件中,找到对应的坐标,然后在其他maven中导入改坐标就可以了,但是想到导入该坐标,需要使用生命周期中的install,必须先安装到本地才可以在其他的包中识别并编译成功。
<dependency>
<groupId>org.example</groupId>
<artifactId>maven_03_pojo</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
2. maven的依赖是具有传递性的
比如:我在maven_03_pojo
中导入了org.mybatis
,那么我maven_02_ssm
中不需要导入该坐标,也可以识别到这个包,这就是maven的依赖传递。
3. 可选依赖和排除依赖:
可选依赖:我隐藏我的东西,不想让别人用
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.5</version>
<!-- 可选依赖是隐藏当前工程所依赖的资源,隐藏后对应资源将不具有依赖传递性-->
<optional>true</optional>
</dependency>
排除依赖:我用了别人的东西,一部分我不想用
<dependency>
<groupId>org.example</groupId>
<artifactId>maven_04_dao</artifactId>
<version>1.0-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
4. 继承与聚合
4.1聚合
步骤:
- 4.1.1. 创建Maven模块,设置打包类型为pom
<packaging>pom</packaging>
- 4.1.2. 设置当前聚合工程所包含的子模块名称
<!--设置管理模块的名称--> <modules> <module>../maven_02_ssm</module> <module>../maven_03_pojo</module> <module>../maven_04_dao</module> </modules>
聚合工程中所包含的模块在进行构建时会根据模块间的依赖关系设置构建顺序,与聚合工程中模块的配置书写位置无关参与聚合的工程无法向上感知是否参与聚合,只能向下配置哪些模块参与本工程的聚合
4.2 继承
步骤:
- 4.2.1. 创建Maven模块,设置打包类型为pom
<packaging>pom</packaging>
- 4.2.2. 在父工程的pom文件中配置依赖关系 (子工程将沿用父工程中的依赖关系)
- 4.2.3 配置子工程中可选的依赖关系
<!--设置管理模块的名称 子工程不需要配置版本--> <dependencyManagement> <dependencies> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.12</version> </dependency> </dependencies> </dependencyManagement>
- 4.2.4 在子工程中配置当前工程所继承的父工程
<parent> <groupId>org.example</groupId> <artifactId>maven_01_parent</artifactId> <version>1.0-SNAPSHOT</version> <relativePath>../maven_01_parent/pom.xml</relativePath> 这一行不写也能用,帮忙定位位置的 </parent>
- 4.2.5 在子工程中配置使用父工程中可选依赖的坐标
<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </dependency>
子工程中使用父工程中的可选依赖时,仅需要提供群组id和项目id,无需提供版本,版本由父工程统一提供,避免版本冲突子工程中还可以定义父工程中没有定义的依赖关系
5. 属性的配置与使用
- 5.1定义属性
<!--定义属性--> <properties> <spirng.version>5.2.0.RELEASE</spirng.version> <log4j.version>1.2.12</log4j.version> <mybatis-spring.version>1.3.0</mybatis-spring.version> </properties>
- 5.2 引用属性
<!--定义属性--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>${mybatis-spring.version}</version> </dependency>
6. 版本管理
8. 多环境开发和跳过测试(了解)
- a
- a