Maven命令学习

maven介绍

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

maven的两大核心:

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

maven工程目录约定:
Maven命令学习_第1张图片

maven命令介绍

maven的生命周期为下(每一个都对应一个命令):
Maven命令学习_第2张图片
在maven中存在“三套”生命周期,每一套生命周期相互独立,互不影响。在一套生命周期内,执行后面的命令前面操作会自动执行:

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

clean

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

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文件是否可以被执行,通常的版本是向下兼容的。

Maven命令学习_第3张图片

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

compile

将项目中.java文件编译为.class文件,生成位置为当前项目下的target目录:
Maven命令学习_第4张图片

test

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

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

package

将项目打包,打包项目根目录下taget目录:
Maven命令学习_第5张图片

verify

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

install

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

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

Maven命令学习_第6张图片

site

pom.xml添加如下配置:

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

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

执行mvn site命令完成:
Maven命令学习_第7张图片
index.html:
Maven命令学习_第8张图片
Maven命令学习_第9张图片
Maven命令学习_第10张图片
apidocs目录index.html:
Maven命令学习_第11张图片
testapidocs目录index.html:
Maven命令学习_第12张图片

deploy

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

你可能感兴趣的:(Java)