Maven -- 基础知识的记录

1. 项目编译时,Maven的工作

当项目编译时,Maven首先从本地仓库中寻找项目所需的Jar包,若本地仓库没有,再到Maven的中央仓库(Maven官方提供的远程仓库)下载所需Jar包。

2. 坐标

Maven通过坐标在仓库中找到项目所需的Jar包,其变量有:

  • groupId:所需Jar包的项目名
  • artifactId:所需Jar包的模块名
  • version:所需Jar包的版本号

代码举例:

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.1.1</version>
</dependency>

3. 依赖

在引用jar包的时候,如果该Jar包又引用了其他Jar包,那么在默认的情况下,根据传递依赖的原理,Maven会将其全都下载下来。而如果只想下载直接引用的Jar包,则可以通过排除依赖,将需要排除的Jar包的坐标写在pom.xml中。
代码举例:

<exclusions>
    <exclusion>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
    </exclusion>
</exclusions> 

4. 聚合

只需在pom中作相应配置即可实现聚合--将多个项目同时运行。
代码举例:

<modules>
        <module>../模块1</module>
        <module>../模块2</module>
        <module>../模块3</module>
</modules>

5. 继承

在聚合多个项目时,如果这些被聚合的项目中需要引入相同的Jar,那么可以将这些Jar写入父pom中,各个子项目继承该pom即可。实现上需要分别配置父pom及子pom.
父pom的配置举例:

<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-spring</artifactId>
                <version>1.2.2</version>
            </dependency> 
        </dependencies>
</dependencyManagement>

子pom的对应配置如下:

<parent>
    <groupId>父pom所在项目的groupId</groupId>
    <artifactId>父pom所在项目的artifactId</artifactId>
    <version>父pom所在项目的版本号</version>
</parent>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,915评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,950评论 6 342
  • 前言什么是 POMQuick Overview POM 常用元素 pom.xml 完整注释 参考 0 前言 什么是...
    阿父阅读 12,655评论 1 36
  • Maven编译代码的相关命令 第一、main目录下的主代码编写完毕后,使用Maven进行编译,在项目根目录下运行命...
    加油小杜阅读 1,241评论 0 2
  • 第六重天的主题:觉察烂故事 某某人,根据你的自我定义,你觉得怎样的自己才是值得被爱的?为什么? 根据我的自我定义,...
    李英花阅读 255评论 0 0