Maven详解一

一、Maven诞生

       Maven是  年由Apache组织开源的一个项目,是跨平台(Windows、MAX、Linux)的项目管理工具, MAVEN被称为“专家”、“内行”。它主要服务于给予JAVA平台的项目构建、依赖管理和项目信息管理,提供一套项目开发的标准化创建过程。

       何为项目构建

       作为程序员,每天除了讨论需求、开发新功能、修BUG,开发和修BUG的过程中有相当大部分时间花在编译、运行单元测试、生成文档、打包和部署等繁琐且不起眼的工作上,就这就构建。 如果我们手动用IDE的命令一个个去做,成本会非常高;所以有没有一个软件能够让这一系列的工作能够自动化,仅仅需要几个命令就可以很快得到最终结果,把这部分时间解放出来呢?

     何为依赖

      作为程序员,我们开发项目不是每个轮子都需要去造,需要引用很多外部的构件。每个开源构件的公司发布构件的频率和方式不一样,存储的位置、发布的版本都不一样,一般一个项目会引用多个不同公司的开源构件,如果我们一个个去下载、会花费大量的手工时间,并且这些不同公司的开源构件可能还不兼容。又没有一个软件能够解决这些繁琐、耗时、易出错的工具呢?

 

      对于解决这种问题的想法,JAVA工作者们都有个共识,这样的工具很必要,所以就出现了各种项目管理工具。 现在比较一下各种管理工具的优劣

 二、MAVEN安装及环境变量

最新的Apache Maven版本是Apache Maven 3.6.3

下载地址:https://maven.apache.org/download.cgi?Preferred=https%3A%2F%2Fmirror.bit.edu.cn%2Fapache%2F

系统要求

项目要求
JDKMaven 3.3 要求 JDK 1.7 或以上
Maven 3.2 要求 JDK 1.6 或以上
Maven 3.0/3.1 要求 JDK 1.5 或以上
内存没有最低要求
磁盘Maven 自身安装需要大约 10 MB 空间。除此之外,额外的磁盘空间将用于你的本地 Maven 仓库。你本地仓库的大小取决于使用情况,但预期至少 500 MB
操作系统没有最低要求

设置 Maven 环境变量

右键 "计算机",选择 "属性",之后点击 "高级系统设置",点击"环境变量",来设置环境变量,编辑系统变量 Path,添加变量值见如下图:

在path变量中设置maven的路径

配置好之后,cmd打开命令行窗口,在命令行输入 mvn -version,则看到本机的maven版本如3.6.0,如下图

命令行查看maven版本

 

三、约定配置

Maven 提倡使用一个共同的标准目录结构,Maven 使用约定优于配置的原则,大家尽可能的遵守这样的目录结构。如下所示:

目录目的
${basedir}存放pom.xml和所有的子目录
${basedir}/src/main/java项目的java源代码
${basedir}/src/main/resources项目的资源,比如说property文件,springmvc.xml、application.yml等
${basedir}/src/test/java项目的测试类,比如说Junit代码
${basedir}/src/test/resources测试用的资源
${basedir}/src/main/webapp/WEB-INFweb应用文件目录,web项目的信息,比如存放web.xml、本地图片、jsp视图页面
${basedir}/target打包输出目录
${basedir}/target/classes编译输出目录
${basedir}/target/test-classes测试编译输出目录
Test.javaMaven只会自动运行符合该命名规则的测试类
~/.m2/repositoryMaven默认的本地仓库目录位置

并且Maven在命令行暴露的用户接口是统一的,像mvn clean install 这样的命令可以用来构建几乎任何的Maven项目。

三、MAVEN的依赖管理

1、仓库的种类及相互之间的关系

config/settings.xml 可以设置本地仓库的位置,默认是 ${user.home}/.m2/repository 也可以在localRepository 这个节点处重新定义本地仓库的位置: <localRepository>/path/to/local/repo</localRepository>

在idea项目中可以特别设置指定的settings.xml和Repository的位置

四、可用插件

  • 构建插件将在构建期间执行,并且应<build/>在POM 中的元素中对其进行配置。
  • 报告插件将在网站生成期间执行,并且应<reporting/>在POM 的元素中进行配置

          clean;

       compiler:编译JAVA源码

    deploy:将构建的工件部署到远程存储库。 是否他的坐标就可以被使用了?

install将已构建的工件安装到本地存储库中。

      

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值