maven的通常用法

目录

 


  这章咱们讲讲几个经常使用的 Maven 命令。因为执行命令是在工程的基础上来的,因此咱们要先建立一个 Maven 工程,具体如何建立,在上一篇博客已经介绍了:http://www.cnblogs.com/ysocean/p/7420373.htmlhtml

 

一、建立 Maven 工程

  

  ①、在 src/main/java 新建包 com.ys.maven,而后在这个包中建立类 HelloMaven.javajava

package com.ys.maven;
public class HelloMaven {
    //传入一个字符串并返回
    public String Hello(String name){
        return name;
    }
}

  ②、在 src/test/java 新建包 com.ys.maven,而后在这个包中建立类 HelloTest.javaweb

package com.ys.maven;
import junit.framework.Assert;
import org.junit.Test;
public class HelloTest {    
    @Test
    public void testHello(){
        HelloMaven he = new HelloMaven();
        String name = he.Hello("Tom");
        //判断 Hello 传入的参数是不是 "maven"
        Assert.assertEquals("maven", name);
    }
}

  ③、pom.xml 文件以下:apache

<project xmlns="http://maven.apache.org/POM/4.0.0"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

     http://maven.apache.org/xsd/maven-4.0.0.xsd">    

  <modelVersion>4.0.0</modelVersion>

  <groupId>com.ys</groupId>

  <artifactId>hellomaven</artifactId>

  <version>0.0.1-SNAPSHOT</version>   

  <dependencies>

    <dependency>

        <groupId>junit</groupId>

        <artifactId>junit</artifactId>

        <version>4.0</version>

        <scope>test</scope>

    </dependency>

  </dependencies>

</project>

  为何要这样写,咱们后面会详细讲解。tomcat

 

二、Maven 的经常使用命令

一、mvn compile 编译,将Java 源程序编译成 class 字节码文件,会在你的项目路径下生成一个target目录,
在该目录中包含一个classes文件夹,里面全是生成的class文件及字节码文件。

二、mvn test 测试,并生成测试报告,清理的过程当中会删除删除target目录下编译的内容。

三、mvn clean 将之前编译获得的旧的 class 字节码文件删除,执行该命令会删除项目路径下的target文件,可是不会
删除本地的maven仓库已经生成的jar文件。

四、mvn pakage 打包。这个命令会在你的项目路径下一个target目录,而且拥有compile命令的功能进行编译,同时会在
target目录下生成项目的动态打包后的文件,例如 web工程打 war包,Java工程打 jar 包文件。

五、mvn install 该命令包含了package命令功能,不但会在项目路径下生成class文件和jar包,同时会在你的本地maven
仓库生成jar文件,供其余项目使用

六、deploy,在整合或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其余的开发者或者工程能够共享。

对项目打包有三种打包方式,pom打包,jar包和war包。打包方式在pom.xml文件中进行指定。

注:同时执行屡次install或者package命令会每次都更新jar文件。

pom工程通常是聚合工程,表明父工程,负责管理jar包的版本、maven插件的版本等,主要作统一的依赖管理。

jar包就是普通的打包方式,能够是pom工程的子工程。

war包的都是web工程,是能够直接放到tomcat下运行的工程。

打成pom包和jar包的工程在新建的时候能够不须要制定maven项目的原型,达成war包的项目须要制定maven项目原型,指定的
原型一般为maven-archetype-webapp,表明web项目。

其中最经常使用的就是maven clean和maven install。

 

注:app

  • mvn clean package依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段。
  • mvn clean install依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8个阶段。
  • mvn clean deploy依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9个阶段。webapp

    由上面的分析可知主要区别以下,maven

  • install命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
  • package命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库
  • deploy命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库 

  

  ①、compile:将Java 源程序编译成 class 字节码文件。单元测试

  第一步:选择 pom.xml 文件,右键--->Run As ---->2 Maven build...测试

  

  第二步:在第一步执行完后弹出来的对话框中,输入 compile,而后点击 Run 按钮

  

  第三步:查看控制台

  

  第四步:在 target 目录下,咱们会发现编译生成的 class 文件

 

   ②、test:测试,并生成测试报告

    第一步:选择 pom.xml 文件,右键--->Run As ---->2 Maven build...,而后在弹出框中输入 test

      或者选择 pom.xml 文件,右键--->Run As------>6 Maven test,以下图

 

  第二步:查看控制台

  分析测试程序,咱们传入的参数是Tom,而咱们但愿的是maven,很显然是不相等的,那么测试失败

  

 

   若是测试类 HelloTest.java改成以下:

 

 

  

  从新执行 mvn test 命令,控制台以下:

 

  

  生成的测试报告能够在以下目录查看:target/surefire-reports

 

  

  

  ③、mvn clean 将之前编译获得的旧的 class 字节码文件删除

  第一步:选择 pom.xml 文件,右键--->Run As ---->2 Maven build...,而后在弹出框中输入 clean

    或者选择 pom.xml 文件,右键--->Run As------>3 Maven clean,以下图

   

  

 

  第二步:查看控制台

   

 

    

  第三步:发现 mvn compile 编译好的文件这时已经清除了

 

  

  ④、mvn pakage 打包,动态 web工程打 war包,Java工程打 jar 包。

  第一步:选择 pom.xml 文件,右键--->Run As ---->2 Maven build...,而后在弹出框中输入 package

    

 

   第二步:查看控制台

  

  第三步:进入到 target 目录,会发现打出来的 jar 包

  

 

   ⑤、mvn install 将项目生成 jar 包放在仓库中,以便别的模块调用

   这里咱们就不截图了,执行命令后,进入到 settings.xml 文件中配置的仓库,你会发现生成的 jar 包

   

相关文章
相关标签/搜索