maven入门及常用命令

  • maven简介

    • 项目管理及自动构建工具
    • 扩展:gradle、前端npm、webpact
    • 小目标:使用maven管理jar包,使用npm管理前端的文件。达到不过还不够熟练
  • maven安装-----看ppt

    • 官网下载,bin.zip版本
    • 包括镜像的更换,以及在IDE中的配置
  • 基本概念

    • 生命周期

      • maven对构建的过程进行了抽象和定义
        • 构建:从源码到成品的过程都可由maven来控制。
      • 生命周期(lifecycle)由多个阶段(phase)组成,每个阶段会挂接一到多个goal
      • goal为maven中定义任务的最小单元,相当于ant中的target
      • 阶段图见ppt
      • 启动2-》编译6-》测试7-》打包2-》集成测试3-》安装2-》部署1
        • 启动:验证配置是否正确
        • 编译:源码编码为class
        • 测试:执行单元测试
        • 打包:jar、war等便于发布的形式
        • 集成测试:与其他系统联合进行测试
        • 安装:将jar包安装到本地仓库
        • 部署:将jar发布到maven仓库中
    • 创建项目

      • 项目的骨架—也就是直接搭建为一个项目,包含一些常用的目录。
      mvn archetype:generate
      ->选archetype (internal:7=quickstart:javase 10=webapp:javaee)
      ->填groupId\artifactId\version\package
      ->生成项目
      
      <!--命令行通过-D来指定一些参数。可以不用填写坐标-->
      mvn archetype:generate -DarchetypeCatalog=internal -DgroupId=me.maiz.build -DartifactId=demo
      
    • 坐标—用来唯一确定一个依赖包

    <dependency>
      	<groupId>net.sf.json-lib</groupId> <!--公司,这个也是repo中的目录形式-->
      	<artifactId>json-lib</artifactId><!--项目-->
      	<version>2.4</version><!--版本-->
      	<type>jar</type>
      	<classifier>jdk15</classifier>
    </dependency>
    <!--定位到repo  net/sf/json-lib/json-lib-2.4-jdk15.jar-->
    
    • 坐标的依赖范围

      • compile:编译时依赖在所有阶段都可获得,默认

      • provided:编译时需要,但不打包中。例如jdk 由外部提供这个环境,而不需要打包到项目中 例如servlet.api 由服务器提供。

      • runtime:运行依赖范围,编译阶段阶段不需要,只有在运行时需要,例如JDBC驱动程序

      • test:测试依赖范围,仅在编译和运行单元测试时需要

      • system:本地依赖,不建议使用

        		编译时依赖	测试时依赖	运行时依赖	是否打入包 	
        compile		Y			Y			Y		Y
        provided	Y			Y			Y		N
        test		N			Y			N		N
        runtime		N			Y			Y		Y
        
    • 坐标的依赖传递

      • 只有编译依赖范围和运行依赖范围可传递?

      • 注意:每一个依赖也会有一个pom.xml,所以可以导入依赖的依赖

      • 例子

        A->B->C
        简单依赖传递: A->C
        
        A->B->C(0.1)
        A->C(0.2)
        最短路径优先原则: A->C(0.2)
        
        A->B->C(0.1)
        A->E->C(0.2)
        第一声明优先原则:最终依赖C(0.1)
        
    • 依赖归类

      <properties>
        	<!--***的标签名,这样在下面引用,然后更改版本就十分的方便,在这里更改就行了-->
        	<!--或者保证下面同一系列多个jar包的版本统一-->
          <spring.version>2.5</spring.version>
        </properties>
        <dependencies>
            <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-core</artifactId>
              <version>${spring.version}</version>
            </dependency>
         </dependencies>
      
    • 依赖排除

      <dependency>
             <groupId>org.hibernate</groupId>
             <artifactId>hibernate-validator</artifactId>
             <version>4.3.1.Final</version>
        		<!--排除下面的依赖-->
             <exclusions>
                  <exclusion>
                      <artifactId>slf4j-api</artifactId>
                      <groupId>org.slf4j</groupId>
                  </exclusion>
             </exclusions>
      </dependency>
      
    • 继承

    • repository

      local(本地仓库:自己)->private(私有仓库)->central(中央仓库)
      local:localRepository in settings.xml
      private:mirrors in setting.xml
      central:pulbic repositories in nexus
      
      终极绝招:删库重拉
      
    • Profile

      pass
      
    • 常用命令

      mvn  clean    清理编译出的文件      结果:删除 target文件
      mvn  compile  编译  结果:编译java文件到target/classes
      mvn	 test     测试  
      mvn  package -Dmaven.test.skip=true  打包并跳过单元测试
      	java -jar jar包名字运行该jar包
      	--有时间做一个专题来进行maven安装各类项目并且运行的详细解释
      mvn  install -Dmaven.test.skip=true  安装并跳过单元测试
      mvn  archetype:generate    生成项目骨架
      mvn dependency:tree        打印依赖树
      

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值