Maven

1. 原始的开发姿势

在这里插入图片描述

传统的开发方式下,我们是通过把我们 写好的代码+额外的第三方的jar包 压缩之后发给其他项目组的成员;

  • jar包的体积有可能很大,及其不方便传输的
  • 这种方式及其不方便团队协作的
  • 传统的这种方式是不方便我们进行jar包的管理 升级 维护的;

2. 项目的构建步骤

  • 编写代码
  • 编译
  • 单元测试
  • 生成文档
  • 打包
  • 部署

3. Apache Maven 是做什么用的?

  • 免费,开源,跨平台(apache的顶级项目)
  • Maven 是一个项目管理和构建自动化工具,主要为Java平台的项目构建、依赖关联和项目信息管理提供服务。
  • 使用Maven能够通过软件代替开发人员手工进行项目构建的流程,所有繁琐的步骤通过自动化命令,如全自动流水线般完成工作。
  • 是目前使用最为广泛的项目构建工具。
  • 在目前业内比较主流的项目构建工具(maven gradle)

4. Maven一图深入解析

在这里插入图片描述

maven最主要的功能:

  • 依赖管理
  • 打包

5. Maven客户端的安装

安装maven之前首先确保已经安装了jdk,并且配置了JAVA_HOME环境变量;

  • 准备压缩包

    apache-maven-3.5.2.zip

  • 解压到自己规定的目录

  • 配置Maven的环境变量

    M2_HOME=E:\apache-maven-3.5.2
    Path=%M2_HOME%\bin
    
  • 验证是否安装成功

    mvn -v
    

6. maven的配置

我们使用maven的时候,需要配置本地仓库的位置;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

建议: 把我发给你们的setting.xml文件,直接覆盖你的配置文件;更改本地仓库地址即可;


7. Maven拉取jar包的流程

在这里插入图片描述


8. maven与idea集成

在这里插入图片描述
在这里插入图片描述

配置完成就与idea已经集成了;


9. 创建maven项目的方式

9.1 新建Maven的普通项目

在这里插入图片描述

9.2 创建一个java的普通项目

创建项目完成之后,添加对maven的支持


9.3 Maven的项目结构

因为maven是一个自动化项目构建工具,所以我们的maven项目的结构是固定的;

在这里插入图片描述


10. maven的jar包引入

在这里插入图片描述

maven底层通过坐标查找jar包的时候是三级定位: group/artifactId/version/{artifactId}-{version}.jar,通过上级定位就可以在硬盘找找到唯一的一个jar包了;

注意: 在实际开发过程我们可能会遇到下面问题:

(1) 导入jar包卡主不动(一直在下载):

解决:

​ 检查网络时候良好

​ 关闭项目,再重新打开项目,点击刷新

(2) 坐标写的没问题,就是报错:

​ 进入到三级定位的目录,删除里面生成的临时文件,再刷新


11. maven的打包功能

maven是以插件化的形式来运行的;而maven也给我们自带了好几个基础插件,但是我们通过基础打包插件发现基础的打包插件只能给我们打包我们自己编写的代码,无法打包项目中引入的第三方的依赖,那么我们就需要引入一个打包的增强插件shade;

使用shade 打包插件

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>2.4.3</version>
            <configuration>
                <!-- put your configurations here -->
            </configuration>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

    </plugins>
</build>

12. maven中的依赖管理

  • maven中的依赖是具有继承(传递)性

  • 如果我们要阻止依赖的传递 optional的值要设置为true

    <dependency>
        <groupId>commons-dbutils</groupId>
        <artifactId>commons-dbutils</artifactId>
        <version>1.7</version>
        <!--阻止依赖的传递-->
        <optional>true</optional>
    </dependency>
    
  • 排除依赖

    <dependency>
        <groupId>org.xzy</groupId>
        <artifactId>java022</artifactId>
        <version>1.0-SNAPSHOT</version>
        <!--依赖排除  注意:依赖排除时不需要version-->
        <exclusions>
            <exclusion>
                <groupId>commons-dbutils</groupId>
                <artifactId>commons-dbutils</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    

13. maven的复合项目

在这里插入图片描述
在这里插入图片描述

复合项目是可以互相依赖的;


14. maven的私服

如果公司需要安装maven私服,则按照nexus的安装过程安装就行了;


15. Maven的依赖范围

compile: 源代码可以调用  会随项目打包
provided: 源代码可用  不会随项目打包(servlet jsp)
runtime: 源代码不可用  只在运行时有效  会随项目打包(jdbc驱动)
test:  源码可用  运行时可用  但是不会随着项目打包(junit单元测试)

16. 使用maven的骨架创建web项目

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值