注:约定大于配置

1. 简介

基于项目对象模型(POM)的概念纯java开发的开源项目管理工具,对java项目进行项目构建和依赖管理

        1) 项目构建

                编译、测试、运行、打包、安装、部署

        2) 依赖管理

                传统的web项目,需把所有用到的jar包放到工程里,导致工程很大;maven项目不直接将jar包导入工程,使用pom.xml文件定位jar包坐标,工程去指定存放jar包的仓库(maven仓库),根据坐标找到使用。

2. 仓库

        1) 存放依赖(jar包)的地方,并且管理着每个依赖唯一的标识(坐标),Java项目凭坐标获取依赖。

        2) 分类

                a. 本地仓库

                        存储从远程仓库或中央仓库下载的插件和jar包,项目使用优先从本地仓库查找。

                b. 远程仓库

                        本地仓库中没有,默认去远程仓库下载--可以是互联网也可以是局域网(私服)。

                c. 中央仓库--https://mvnrepository.com/

                        maven团队维护,软件中内置的远程仓库,服务于整个互联网。

        3) 公共仓库

                a. 除中央仓库外的其他远程仓库,比如阿里云仓库...(中央仓库在国外,下载速度太慢,在国内配置一个远程仓库代替)。

3. Idea(2023.3.1)-Maven

        1) 创建maven项目

                

        2) 项目结构

                

        3) 创建关联关系

                

        4) pom.xml配置文件

                project 文件的根节点

                modelVersion 模型版本

                groupId 项目标识

                artifactId 项目名称

                version 项目版本

                packaging 打包类型,jar、war、pom等

                name 项目的显示名

                description 项目描述

                dependencies 项目依赖的坐标

                properties 属性管理

4. 依赖生命周期

        jar包的使用时间段即生命周期,在pom文件中导入依赖(根据GAV定位)时指定(scope便签),默认为compile依赖范围。

                compile:编译范围,用在编译、测试、运行范围,运行时需要会被打包。

                provided:提供依赖,用在编译、测试范围,运行时不需要不会被打包。

                runtime:运行范围,编译不需要,用在测试、运行范围,运行时需要会被打包。

                test:编译、运行时不需要不会被打包。

5. maven命令

        compile:编译,将src/main/java下的文件编译成class文件输出到target目录下。

        clean:清理,将target目录及内容都删除。

        package:打包,把工程打成jar包或war包。

        install:安装,打成的jar包或war包发布到本地仓库。

6. 私服

        1) 简介

                架设在局域网的特殊的远程仓库;项目请求私服,私服上有直接下载到本地仓库,否则,私服请求外部的远程仓库下载到私服,供本地仓库使用。

        2) 仓库列表(了解)

                

        3) maven中配置私服,通过maven的setting.xml文件关联。

                

        4) deploy可将项目部署到私服对应的仓库,通过idea的pom.xml文件关联。

                   

7. 分模块开发

        1) 继承和聚合

                继承是为了消除重复,如果将dao、service、web创建多个工程,则pom文件中内容重复;比如:编译版本,spring版本等;可以将这些重复的配置提取出来在父工程pom文件中配置。

                聚合是为了多个模块同时运行,dao、service、web放在一块运行。

        2) 解决依赖冲突

                第一声明优先原则:pom文件中,先声明的依赖为准。

                路径近者优先原则:直接依赖级别高于传递依赖。

                排除依赖

                        

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐