Maven命令学习

maven介绍

maven是Apache下的一个纯java开发的开源项目,它是一个项目管理工具,使用maven对java项目进行构建、依赖管理;

maven的两大核心:

  1. 依赖管理:对jar包管理过程;
  2. 项目构建:项目在编码完成后,对项目进行编译、测试、打包、部署等一系列的操作都通过命令来实现

maven工程目录约定:
在这里插入图片描述

maven命令介绍

maven的生命周期为下(每一个都对应一个命令):
在这里插入图片描述
在maven中存在“三套”生命周期,每一套生命周期相互独立,互不影响。在一套生命周期内,执行后面的命令前面操作会自动执行:

  • cleanLifeCycle:清理生命周期-------clean
  • defaultLifeCycle:默认生命周期-------compile,test,package,install,deploy
  • siteLifeCycle:站点生命周期-------site

1、clean

将项目根目录下target目录清理掉;

2、validate

确认项目正确并且所有必要的信息均可用。编译后的class文件为16进制文件,validate命令主要验证该16进制文件是否符合java文件的规范,例如:

  • Class文件的前4个字节称为魔数(Magic Number),它是用来确定这个文件是否为一个Java虚拟机可以接受的Class文件,Class文件魔数的值为0xCAFEBABE。如果一个文件不是以0xCAFEBABE开头,那它就肯定不是Java Class文件。
  • 紧接着魔数的四个字节是Class文件的版本号,第5个和第6个字节是次版本号(Minor Version),第7和第8个字节是主版本号(Major Version),版本号是用来区别当前的Class文件是否可以被执行,通常的版本是向下兼容的。

在这里插入图片描述

  0X0034(对应十进制的52):JDK1.8      
  0X0033(对应十进制的51):JDK1.7      
  0X0032(对应十进制的50):JDK1.6      
  0X0031(对应十进制的49):JDK1.5  
  0X0030(对应十进制的48):JDK1.4  
  0X002F(对应十进制的47):JDK1.3  
  0X002E(对应十进制的46):JDK1.2 

3、compile

将项目中.java文件编译为.class文件,生成位置为当前项目下的target目录:
在这里插入图片描述

4、test

将项目根目录下src/test/java目录下的单元测试类都会执行;

注意:单元测试类名有要求:XxxxTest.java

5、package

将项目打包,打包项目根目录下taget目录:
在这里插入图片描述

6、verify

官方文档上的解释:对集成测试的结果进行任何检查,以确保符合质量标准;
看不懂,而且自己也没用过,不知道是干啥的,就先这样吧!

7、install

install 安装指令,其做了两件事情:

  1. 将项目打包(jar/war),将打包结果放到项目下的 target 目录下(这步就是 package 的作用嘛);
  2. 同时将上述打包结果放到本地仓库的相应目录中,供其他项目或模块引用;

在这里插入图片描述

8、site

pom.xml添加如下配置:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-site-plugin</artifactId>
      <version>3.4</version>
    </plugin>
  </plugins>
</build>

<reporting>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-javadoc-plugin</artifactId>
      <version>2.10.4</version>
    </plugin>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-project-info-reports-plugin</artifactId>
      <version>2.9</version>
    </plugin>
  </plugins>
</reporting>

执行mvn site命令完成:
在这里插入图片描述
index.html:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
apidocs目录index.html:
在这里插入图片描述
testapidocs目录index.html:
在这里插入图片描述

9、deploy

将maven的web项目部署到远程服务器;

pom的dependencyManagement

Maven中dependencyManagement的作用其实相当于一个对所依赖jar包进行版本管理的管理器。

pom.xml文件中,jar的版本判断的两种途径:

1:如果dependencies里的dependency自己没有声明version元素,那么maven就会到dependencyManagement里面去找有没有对该artifactId和groupId进行过版本声明,如果有,就继承它,如果没有就会报错,告诉你必须为dependency声明一个version;

2:如果dependencies中的dependency声明了version,那么无论dependencyManagement中有无对该jar的version声明,都以dependency里的version为准;

dependencyManagement里只是声明依赖,并不实现引入!

//只是对版本进行管理,不会实际引入jar 
<dependencyManagement> 
   <dependencies> 
       <dependency> 
           <groupId>org.springframework</groupId> 
           <artifactId>spring-core</artifactId> 
           <version>3.2.7</version> 
       </dependency> 
  </dependencies> 
</dependencyManagement> 
   
//会实际下载jar包 
<dependencies> 
   <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
   </dependency> 
</dependencies>

原文:https://www.cnblogs.com/zhangmingcheng/p/10984036.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值