Maven

学习目标:

  • 了解Maven的概念
  • 了解如何使用Maven
  • 了解如何构建

学习内容:

  1. 掌握Maven的概念
  2. 掌握如何使用Maven
  3. 掌握如何构建

学习产出:

1、Maven的概念
1)Apache软件基金会组织维护的一款自动化构建工具,专注于服务java平台的项目构建和依赖管理
2)为什么使用

  • 第三方jar包
    我们在使用第三方框架的时候,我们会把jar包复制粘贴到WEB-INF/lib下。每次新创建工程都要这么做,造成工作区有大量的重复文件,如果使用maven,会让每个jar包在本地仓库中只保存一份,需要jar包的工程只要以坐标的方式简单的引用一下就行了。可以大大节约空间,让项目更轻巧。

  • jar包之间的依赖关系
    jar包往往不是孤立的,很多jar包需要在其他jar包的支持下才能正常工作。当我们去使用一个从未使用过的jar包,我们怎么知道这个jar包依赖于哪些其他的jar包呢?使用maven,可以自动将当前jar包所依赖的其他jar包全部导进来,无需人工参与,节约了我们大量的时间和精力。

  • 获取第三方jar包
    我们会使用很多的jar包,每个jar包获取的方式不尽相同。有时候找一个jar包要找遍互联网,找到的还是不规范的,不能使用。使用maven我们可以享受一个完全统一规范的jar包管理体系

  • 将项目拆分成多个工程模块
    有些大型项目已经不能通过package结构来划分模块了,这时候必须将项目拆分成多个工程协同开发
    2、使用Maven

    • 下载
  • 配置环境变量

    在这里插入图片描述
    window+R
    在这里插入图片描述

  • 修改maven配置文件,conf下的settings.xml

    修改maven所在的文件路径在这里插入图片描述

  • idea修改maven

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

坐标
使用以下三个向量在maven仓库中唯一的确定一个maven工程
groupid:公司或者组织的域名倒序+当前项目名称
artifactid:当前项目模块名称
version:当前模块版本在这里插入图片描述
项目会报错,添加tomcat解决
在这里插入图片描述
3、构建
构建就是以我们编写的java代码、框架配置文件、国际化等其他资源文件、jsp页面和图片等静态资源作为“原材料”,去“生产”出一个可以运行的项目

  • 清理:删除以前的编译结果,为重新编译做好准备
  • 编译:将Java源程序编译为字节码文件
  • 测试:针对项目中的关键点进行测试,确保项目在迭代开发中关键点的正确性
  • 报告:在每一次测试后以标准的格式记录和展示测试结果
  • 打包:将一个包含诸多文件的工程封装成一个压缩文件用于安装或者部署。java工程对应jar包,web工程对应war包
  • 安装:在Maven环境下特指将打包的结果,就是jar包或者war包安装到本地仓库中
  • 部署:将打包的结果部署到远程仓库或将war包部署到服务器上运行

4、配置jdk版本

<plugins>
    <plugin>
    	<groupId>org.apache.maven.plugins</groupId>
	    <artifactId>maven-compiler-plugin</artifactId>
	    <version>2.3.2</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <encoding>utf-8</encoding>
        </configuration>
    </plugin>
</plugins>

在这里插入图片描述
5、依赖管理
Maven中关键部分,我们使用maven主要就是使用它的依赖管理功能
依赖范围

<scope></scope>
  • compli
    默认,表示被依赖项目需要参与当前项目的编译,包括后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常会包含进去
  • test
    仅仅参与项目测试相关工作,打包时不会打包到项目中
  • provided
    不参与打包,有容器提供(比如servlet相关api,已经有tomcat提供)

6、仓库管理

  • 本地仓库:为当前本机电脑上所有的maven工程服务
  • 远程仓库
    • 私服:架设在当前局域网环境下,为当前局域网范围内所有的maven工程服务
    • 中央仓库:架设在internet上,为全世界所有的maven工程服务
    • 中央仓库镜像:架设在各个大洲,为中央仓库分担流量,减轻中央仓库压力,同时更快的响应用户请求

常用命令

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

生命周期
clean:清理工作

  • pre-clean:执行清理前的准备工作
  • clean:清理上一次构建生成的所有文件
  • post-clean:执行清理后需要完成的工作
  • clean的生命周期的目的仅是清理项目,核心是clean阶段

default:核心工作,例如编译,测试,打包,安装等

  • validate 验证项目是正确的,所有必要的信息都是可用的
  • compile 编译项目源代码
  • test 使用单元测试框架测试编译后的源代码
  • package 获取已编译的代码,并将其打包为可发行的格式,例如JAR。
  • verify获取已编译的代码,并将其打包为可发行的格式,例如JAR。
  • install将包安装到本地仓库,供本地项目使用
  • 将包发布到远程仓库(remote repository),方便其他开发人员和项目共享。

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

  • pre-site 执行一些在生成项目站点之前需要完成的工作.
  • site 生成项目站点文档
  • post-site执行一些在生成项目站点之后需要完成的工作.
  • site-deploy 将生成的项目站点发布到服务器上

7、继承
创建父工程和创建一般的java工程操作一致,唯一需要注意的是,打包方式要设置为pom
在子工程中,调用父工程

<parent>
    <!-- 父工程坐标 -->
	<groupId>xxx</groupId>
    <artifactId>xxx</artifactId>
    <version>xxx</version>
</parent>

创建项目
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值