Maven 高级

依赖传递
依赖传递是指当一个项目 A 依赖于项目 B,而项目 B 又依赖于项目 C 时,项目 A 可以间接地使用项目 C 的类库,而不需要直接声明对项目 C 的依赖。这简化了依赖管理,但也可能引入不必要的依赖,导致版本冲突。

控制依赖传递
排除依赖:可以使用 标签排除不需要的传递依赖。

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
  <version>5.3.3</version>
  <exclusions>
    <exclusion>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
    </exclusion>
  </exclusions>
</dependency>

Scope 管理:通过设置依赖的 scope(如 compile, test, provided 等),可以控制依赖的作用范围。

聚合
聚合是指将多个 Maven 项目组合在一起,形成一个多模块的 Maven 项目。通过聚合,可以一次性构建和管理多个模块。

如何定义聚合
在父项目的 pom.xml 文件中使用 标签指定子模块:

<modules>
  <module>module1</module>
  <module>module2</module>
  <module>module3</module>
</modules>

子模块的目录结构通常与父项目在同一级或子目录中。

继承
继承是指子项目可以继承父项目的配置,如依赖管理、构建插件配置等。这有助于减少重复配置,保持项目一致性。

如何定义继承
在子项目的 pom.xml 文件中使用 标签指定父项目:

<parent>
  <groupId>com.example</groupId>
  <artifactId>parent-project</artifactId>
  <version>1.0.0</version>
  <relativePath>../parent-project/pom.xml</relativePath>
</parent>

属性
属性是 Maven 中用于定义可重用值的机制,通常用于定义版本号、路径、系统属性等。定义的属性可以在 pom.xml 文件的其他部分引用。

常用的属性类型
内置属性:如 ${project.basedir} 表示项目根目录。
用户定义属性:在 标签中定义的属性。
环境变量属性:可以直接引用系统的环境变量。
定义和使用属性
在 pom.xml 文件中定义和使用属性的例子:

<properties>
  <spring.version>5.3.3</spring.version>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>${spring.version}</version>
  </dependency>
</dependencies>
posted @   Look_Back  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示