Maven项目管理工具

  • 一、什么是maven
    • 跨平台 不需要考虑版本的问题
    • 进行依赖管理 以及项目信息管理
    • 说白了就是一个架子来管理项目
    • maven依赖自动下载,统一依赖管理
  • 二、什么是依赖管理
    • 对于第三方依赖包的管理,可以连接互联网下载项目所需要的第三方jar包
    • 但是有了maven之后就不用自己联网下载了,maven会自动在网上下载
  • 三、传统的加载依赖 /// maven的加载依赖

    • maven只要编写pom文件然后引入坐标即可就配置好了
    • 传统的需要这个官网那个官网找jar包,然后再本地的文件包中导入,及其麻烦
  • 四、什么是项目构建
    • 项目构建:一个从编写代码到编译、测试、运行、打包、部署的过程,也可以说是声明周期
    • 传统项目:打开idea编写代码配置文件,对源代码进行编译,用junit(@Test)进行单元测试,把项目打成war包,部署到tomcat上运行
    • maven项目:项目构建过程标准化,每一个阶段都可以是一个命令
      • 编译->测试->运行->打包->部署(通过那个maven projects)就是maven的生命周期
      • 好处:对于每个构建阶段进行规范,所以有助于大型的团队开发
  • 五、maven的应用场景
    • 开发人员按照maven标准的目录结构进行开发,提交代码,maven自动化项目构建完成项目的清理、编译、测试、打包
    • 开发人员和测试人员很好的交互
  • 六、为什么使用maven
    • 依赖管理,仓库管理,只用定义一个pom.xml文件jar包只需要导入坐标即可,maven版本一致,你的代码可以直接放在另一个电脑上运行,解决了idea的这种问题
  • 七、maven目录分析
    • bin:含有mvn的运行脚本
    • boot:
    • conf:含有setting.xml配置文件
    • lib:含有maven运行时所需要的Java库
  • 八、maven的第一个项目 只用maven Java 没用maven web
    • resources-->存放项目资源文件,spring mybatis配置文件
    • test中junit测试类 通过@Test进行测试

    • groupid是项目的坐标
  • 九、maven配置的两个重要的点:
    • 配置一个位置<setting> 注意maven是需要网络的
    • <mirror>镜像 配置aliyun的镜像,不配置的话走maven中央仓库(非常慢),配置一个镜像就会很快, 私服的镜像最好不要用热点数据(一但有问题,换网络)
  • 十、运行方式
    • maven生命周期中的package,打包后放在了target中,然后目录cmd,java -jar 项目名也是运行方式之一
    • 还有就是test
  • 十一、maven仓库
    • 用来统一存储所有maven共享构建的位置就是仓库(jar包)
    • groupid/artifactid/version/基本上就是锁定一个Java文件
    • 本地仓库:/m2/repository/可修改
    • 远程仓库:中央仓库 私服(公司内部)

  • 十二、maven进阶
    • pom.xml 声明项目的依赖
    • 在maven中坐标是唯一标识 groupid组织标识 artifactid项目名 version版本号(形式为0.0.1-SNAPSHOT)是必须定义的 packaging:打包的方式 pom(不写代码,只做jar包的管理) jar(springboot java文件) maven-plugin war(java web项目)
      • 坐标的意义:为了规范存储,通过坐标来找到
    • 自己项目坐标的意义
      • groupid:三级包 artifactid:项目名称 version:项目的当前版本号 packaging打包方式

  • 十三、依赖
    • 依赖的意义:通过dependencies进行依赖管理
    • 三维坐标:groupid:三级包 arti:项目名 version:版本号
    • scope:控制改依赖包在什么情况会被加载到classpath中

    • 将scope设置为compile 可以在main中@Test compile范围是最大的都可以 provide编译和测试 没有运行 runtime是运行时 test测试 默认使用compile

    • 依赖传递和可选依赖
      • 依赖传递:A->B->C->D install进本地仓库
        • 依赖范围对传递依赖的影响

      • 可选依赖:不想要D 下面这个就相当于makefriend依赖了hello 使用exclusion属性,排除掉引用的依赖,等第二个再依赖的时候可以依赖hello项目,而阻断就不可以了

        • 注意:可选和阻断不一样
      • 依赖阻断 下面的框中:<optional>true进行了依赖阻断,如果之后又有其他的依赖hellofriend的话,不会再引入依赖hello,因为optional进行了阻断 暴力行为、

  • 十四、仓库
    • 放jar包的地方
    • 本地 中央 远程
  • 十五、依赖搜索顺序
  • 十六、有三套相互独立的生命周期
    • clean清理项目:clean
    • default构建项目:complie test install package
    • site建立项目站点
  • 十七、maven的插件

    • build:依赖插件
  • 十八、继承和聚合
    • 继承的意义:避免重复,让项目更安全,把公共的写在父模块中
    • 家里ldependencymanagement父工程只做依赖管理
    • 父工程pom 中的properties放版本号,然后子工程直接引入
    • 在父工程new model
    • 父工程只做依赖管理,不去实现
      • 因为直接依赖管理,所以可以删掉src,写上dependencyman

      • 然后下面写版本号properties
      • 然后new model文件作为子工程
        • 子工程依赖的话就直接继承

    • 如果有页面的话就勾选javaweb
      • 也是在父工程下面创建
    • 只需要打包父工程所有的都有了
  • 十九、私服
    • 私服就是一个远程仓库,员工将自己的项目进行打包然后发送给其他人
    • 私服还充当一个代理服务器,当私服上没有jar包从互联网中央仓库自动下载 比如:员工A刚来在本地仓库上没有就去公司的私服上找,还没有的话就在maven的中央仓库中拉到公司的私服 拉到本地仓库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值