Maven项目

Maven:项目管理工具,用于管理和构建各种项目;

主要功能:

1.提供了一套标准化的项目结构

        eclipse、MyEclipse、IDEA不同的IDE之间,项目结构不同,因此不能实现项目的通用。

        Maven提供一套标准化的项目结构,所有的IDE用Maven构建的项目结构完全相同,实现通用

2.提供了一套标准化的构建流程:编译、测试、打包、发布...

        Maven提供了一套简单的命令来完成项目的构建

3.提供了一套依赖管理机制

        依赖管理:管理项目所依赖的第三方资源(jar包、插件...)

                之前:下载jar包,复制jar包到项目中,将jar包加载到工作环境中

                maven项目中:使用标准的坐标配置来管理各种依赖;仅需要简单的配置完成依赖管理

maven项目结构:

        maven-project:项目名称

        pom.xml:项目对象模型,maven工程的基本工作单元,包含了项目的基本信息,用于描述项

                目如何构建,声明项目依赖。

        src:代码文件目录;存在main、test文件

        main:源文件目录

                java:源代码Java文件目录

                resources:源代码配置文件目录

                webapp:web项目核心目录

                        WEB-INF:web应用文件目录,web项目信息,如:web.xml、本地图片、jsp视图

        test:测试文件目录

                java:源代码Java文件目录

                resources:源代码配置文件目录

        target:打包输出目录

                classes:编译输出目录,字节码文件

                test-classes:测试编译输出目录,字节码件

Maven仓库:

        本地仓库:自己计算机目录

        中央仓库:由Maven团队维护的全球唯一的仓库,维护了全球开源免费的jar包

        远程仓库(私服):由公司团队搭建的仓库,维护了自己写的jar包

Maven依赖搜索:

        项目需要A.jar包,

        尚未配置远程仓库时,

        1.在本地仓库中搜索,如果在本地仓库中找到A.jar包,则直接引用;如果找不到,执行步骤2

        2.maven去中央仓库找A.jar包,如果找到,则maven自动下载jar包到本地仓库中,项目完成引用;如果找不到,maven抛出错误:无法找到依赖文件。

        已经配置远程仓库,

        1.项目自动去本地仓库搜索A.jar包,如果找到,项目直接引用;如果本地仓库没有,则步骤2

        2.项目去远程仓库中搜索A.jar包,如果找到,则下载到本地仓库,完成引用;如果没有,则

        3.项目去中央仓库中查找,找到后,先下载对应的jar包到远程仓库中;然后远程仓库将jar包传递给本地仓库,项目完成引用

        4.如果找不到,maven抛出错误:无法找到依赖文件

        注意:一般情况下,远程仓库会将中央仓库中的jar包全部导入,再加上自己写的jar包或者有版权信息的jar包,提升访问速度。

maven的常用命令:

        compile:编译;clean:清理;test:测试;package:打包;install:安装

maven构建生命周期:描述的是一次构建过程经历经历了多少个事件,一个项目构建和发布的过程

一个maven构建的生命周期有以下几个阶段:

        validate:验证,验证项目是否正确且所有必须信息是可用的

        compile:编译,执行编译,源代码编译在此阶段

        test:测试,使用适当的单元测试框架(JUnit)运行测试

        package:打包,创建jar/war包(在pom.xml中定义)

        verify:检查,对集成测试的结果进行检查,以保证质量达标

        install:安装,安装打包的项目到本地仓库中,以供其他项目使用

        deploy:部署,拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程

Maven有三个标准的生命周期:

        clean:项目清理        pre-clean  -> clean -> post-clean

        default:核心工作,项目部署的处理           compile -> test -> package -> install...

        site:产生报告、发布站点等                pre-site ->  site -> post-site

        同一个生命周期内,执行后边的命令,前边所有的命令会自动执行。

Maven依赖管理:

        maven坐标:资源的唯一标识,使用坐标来定义项目或引入项目中需要的依赖

                groupId:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.alibaba)

                artifactId:定义当前maven项目名称(通常是模块名称)

                version:定义当前项目号

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.31</version>
</dependency>

          依赖范围:通过设置maven坐标的依赖范围scope,来设置对应jar包的作用范围

                compile:编译环境、测试环境、运行环境

                test:测试环境

                provided:编译环境、测试环境

                runtime:测试环境、运行环境

                system:编译环境、测试环境

                <scope>默认值都是compile

                

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值