maven入门

主要内容

1.maven简介
maven
2.mvane安装配置
3.maven操作命令
4.IDEA集成maven
5.maven项目创建
6.maven的依赖
7.构建多模块项目
8.maven仓库

1. maven简介

  • 官方描述
      Maven是项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。
      Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。

  • 常见的构建工具

    • Ant
    • Maven
    • Gradle
  • maven的特性

    • 依赖管理系统
    • 多模块构建
    • 一致的项目结构
    • 一致的构建模型和插件机制
  • maven目录结构

    目录用法
    ${basedir}存放pom.xml文件及其它子目录
    ${basedir}/src/main/java存放java源码
    ${basedir}/src/main/resources存放资源文件,如html、图片等
    ${basedir}/src/test/java存放java测试代码
    ${basedir}/src/test/resources存放测试用的资源

2. mvane安装配置

  • 检查jdk版本
      jdk版本1.7及以上版本

  • maven下载地址
      官网下载:http://maven.apache.org/download.html

  • 配置环境变量
      下载解压缩后,将maven目录下的bin目录路径配置到系统变量的path下,并在用户变量下新增MAVEN_HOME,配置为maven根目录路径
       注:目录不要有中文和空格

  • 检查maven是否配置成功
    dos窗口下使用mvn -v命令查看maven版本,成功显示如下:
    在这里插入图片描述

  • 配置maven本地仓库和远程仓库镜像
    打开maven根目录–>conf目录–>settings.xml文件
    在settings标签对中加入
    <localRepository>${你的仓库地址}\repository</localRepository>
    并在mirrors标签对中加入
    <mirror> <id>nexus-aliyun</id> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>
    配置阿里云的远程仓库镜像,当然你也网上可以选择其它镜像仓库
    最后将settings.xml文件拷贝到c:\用户\你的用户名\.m2 目录下

3. maven操作命令

  • 命令格式如下:

    mvn [plugin-name]:[goal-name]
    

    执行plugin-namegoal-name目标

  • 常用命令

    命令作用
    mvn -version查看maven版本信息
    mvn clean把项目下编译好calss信息(target目录)清除掉
    mvn compilesrc下的代码编译 生成target目录生成class文件
    mvn test编译src下test包下的代码以及对main目录下src的代码编译
    mvn package生成target目录,根据pom.xml配置生成jar或war包
    mvn install生成target目录,并把生成的war包放到了本地仓库
    mvn deploy打包并发布项目到远程仓库
    mvn site生成项目相关信息的网站
    mvn dependency:tree打印出项目的依赖树
    mvn tomcat7:run在tomcat容易中运行web应用
    mvn archetype:generate创建maven的普通java项目
  • 命令参数
    maven命令在使用的时候可以通过来添加参数以执行自定义操作

    • 通过-D传入属性参数
      例如: mvn package -Dmaven.test.skip=true
      这样就可以让maven在执行package操作的时候跳过单元测试阶段
    • 通过-P指定Profile配置
      例如:mvn package -Pdev

4. IDEA集成maven

打开IDEA -->File -->Other Settings -->Settings for New Projects -->搜索’maven’
在这里插入图片描述

5.maven项目创建

  • 使用IDEA创建一个java项目
    1. 选择File --> New --> Project

    2. 选择maven,配置jdk版本和maen项目模板
      创建java项目如下图:在这里插入图片描述
      创建web项目如下图:
      在这里插入图片描述

    3. 设置项目的GroupId和ArtifactId
      在这里插入图片描述

    4. 配置maven
      在这里插入图片描述

    5. 检查项目信息,最后点击Finish结束配置
      在这里插入图片描述

    6. 等待IDEA初始化maven项目,并在右下角弹出窗口选择自动导入配置
      在这里插入图片描述

    7. 配置maven相关命令
      在这里插入图片描述
      点击+号并选择maven,在Command line设置你要执行的命令
      在这里插入图片描述

    8. 执行配置的maven操作,成功后控制台输出如下
      在这里插入图片描述

6.maven依赖

  • 依赖的基本配置

    1. groupid、artifactid、version:组成依赖的基本坐标,通过这个坐标可以准确定位到这个依赖的位置
    2. type:可以选择jar或者war包形式,默认为jar
    3. scop:依赖的范围
    4. optional:标记依赖是否可选
    5. exclusions:排除传递性依赖
  • 依赖范围

    • compile
       默认依赖范围,此依赖范围对 于编译、测试、运行三种classpath都有效
    • test
       只对测试classpath有效,在编译主代码和项目运行时,都将无法使用该依赖,例如Junit
    • provided
       只对编译和测试的classpath有效,对运行的classpath无效,例如servlet-api
    • runtime
       只对测试和运行的classpath有效,对编译的classpath无效,典型例子就是JDBC的驱动实现
    • system
       该依赖与classpath的关系与 provided依赖范围完全一致,但是系统依赖范围必须通过配置systemPath元素来显示指定依赖文件的路径,此类依赖不是由maven仓库解析的,而且往往与本机系统绑定,可能造成构件的不可移植,因此谨慎使用
    • import
       该依赖范围不会对三种classpath产生影响,该依赖范围只能与dependencyManagement元素配合使用,其功能为将目标pom文件中dependencyManagement的配置导入合并到当前pom的dependencyManagement中
  • 依赖的传递性
      假设A->B->C1.0,A->E->C2.0,那么这种情况Maven会根据申明的依赖顺序来进行选择,先申明的会被作为依赖包
      当然也可以使用exclusion排除依赖,用法如下

    
       <dependency>  
              <groupId>groupB</groupId>  
              <artifactId>artifactB</artifactId>  
              <version>1.0</version>  
              <exclusions>  
                     <exclusion>  
                            <groupId>groupC</groupId>  
                            <artifactId>artifactC</artifactId>  
                     </exclusion>  
              </exclusions>  
       </dependency> 
    

7.maven构建多模块项目

示例源码地址:git@github.com:HelloWorld19930603/Demo.git

8.maven仓库

  • 本地仓库
    默认是c盘用户目录下.m2/repository目录,当然你也可以在settings.xml文件中指定本地仓库地址,当通过maven寻找依赖的时候,会首先从本地仓库路径下寻找,若没有,则从远程仓库下载到本地,若远程仓库也找不到便会报错了。
  • 远程仓库
    1. 中央仓库
      默认配置下,maven下载jar包的地方
    2. 私服
      为了节省宽带和时间而在本地局域网内架设的maven仓库服务器
    3. 其它公共库
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值