Maven基础-依赖基础和生命周期以及插件

Maven依赖

依赖配置

<dependencies>
    
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.12</version>
    </dependency>
   <!--...-->
</dependencies>
  • 依赖传递
    • 直接依赖:在当前项目中通过依赖配置建立的依赖关系
    • 间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源

对于Maven项目,可能会出现不同版本的依赖,这种情况叫做依赖传递冲突问题

依赖传递冲突问题

  • 路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高
  • 声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的
  • 特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的

可选依赖

对外隐藏当前所依赖的资源

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <optional>true</optional>
</dependency>

排除依赖

主动断开依赖的资源,被排除的资源无需指定版本

 <dependency>
     <groupId>com.itheima</groupId>
     <artifactId>project03</artifactId>
     <version>1.0-SNAPSHOT</version>
     
     <exclusions>
         <exclusion>
             <groupId>log4j</groupId>
             <artifactId>log4j</artifactId>
         </exclusion>
     </exclusions>
</dependency>

依赖范围

依赖的jar默认情况可以在任何地方使用,可以通过scope标签设定作用范围

作用范围

  • 主程序范围有限main文件夹范围内
  • 测试程序范围有效 test文件夹范围内
  • 是否参与打包 package指令范围内

在这里插入图片描述

依赖范围传递性

带有传递范围的资源在进行传递时,作用范围将受到影响

在这里插入图片描述

生命周期与插件

项目构建生命周期

Maven构建生命周期描述的是一次构建过程经历的时间

compile->test-compile->package->install

Maven对项目构建的生命周期划分为3套

  • clean:清理工作

    • pre-clean:执行一些需要在clean之前完成的工作
    • clean:移除所有上一次构建完成的文件
    • post-clean:执行一些需要在clean之后立刻完成的工作
  • default:核心工作,例如编译、测试、打包、部署等

    • 如果执行compile,那么包括compile之前的命令都会执行

在这里插入图片描述

  • site:产生报告,发布站点等

    • pre-site:执行一些需要生成站点文档之前完成的工作
    • site:生成项目的站点文档
    • post-site:执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
    • site-deploy:将生成的站点文档部署都特定的服务器上

生命周期控制的是在执行任务的过程,每个过程对应一个插件

插件

  • 插件与生命周期内的阶段绑定,在执行到对应生命周期时执行对应的插件功能
  • 默认maven在各个生命周期上绑定有预设的功能
  • 通过插件可以自定义其他功能
<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.2.1</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>jar</goal>
                            <goal>test-jar</goal>
                        </goals>
                        <phase>generate-test-resources</phase>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值