• eclipse maven build、maven clean、maven install和maven test的区别 精析


     
     

    1.情景展示

      选中maven项目,右键-->Run As或Debug As-->maven buid,maven install,maven test有什么区别?

    2.区别说明

      6 Maven  clean-->执行的是maven的原生命令:

    mvn clean
    

      表示:删除target目录。

      原目录结构存在target目录

      执行该命令后, target目录被删除。

      2018/11/14

      选中target目录-->右键-->刷新-->在windows资源管理器下打开该目录,你会发现class已经重新编译好

      注意:这不是mvn clean命令执行的只是清空target目录,classes文件之所以重新被编译,依赖于eclipse的自动编译功能!  

      7 Maven generate-sources-->执行的是maven的原生命令:

    mvn generate-sources
    

      表示:会根据pom配置去生成源代码格式的包,产生应用需要的任何额外的源代码(没用过)

      8 Maven  install-->执行的是maven的原生命令:

    mvn install
    

      表示:对项目进行编译、将项目打成war包并且发布到本地仓库。

      target目录说明:

      classes目录:.class,.properties,.xml文件;

      项目名目录:项目所有源码(前端、后台、jar包)

      项目名.war:将项目名目录打成的war包。

      生成的target目录展示

      安装到本地仓库的目录展示

      9 Maven  test-->执行的是maven的原生命令:

    mvn test
    

      表示的是:对项目进行编译并执行测试代码。  

      生成的目录:

      5 Maven build...-->maven没有mvn buid命令 

      表示的是:这是eclipse自带的mvn插件,通过这个功能,你可以自定义设置要执行的maven命令。

      用这个功能,我们能干什么?

      举2个栗子:

      案例一:

      因为maven在打包时,如果已经存在一个包时,再次执行打包命令时,如果不把原来的war包删除,经常会导致包没有更新;

      这时,我们就需要先清除该war包(执行clean命令对应eclipse中的Maven clean功能),再重新打包(执行package或install命令对应eclipse中的Maven install功能)。

      我们可以使用"Maven build"这个功能,在"Goals"一栏,输入命令:clean install,执行一次即可。

      案例二:

      对项目进行打包的时候,跳过单元测试。

      eclipse没有这个功能,只能通过自定义maven命令来实现,在Maven build...这个功能进行设置。

      示例一:打包并发布到本地仓库

      错误用法:不设置命令,直接run

      相当于maven命令:

    mvn
    

      报错信息如下: 

      正确用法:输入 install

     

      示例二:打包时,跳过单元测试

      方式一:在上图勾选上“Skip Tests”

      使用这种方式:src/test/java和src/test/resources这两个目录下的文件不会被编译,自然不会被添加到编译好的项目当中。

      方式二:声明maven命令:“-DskipTests”

      使用这种方式: src/test/java和src/test/resources这两个目录下的文件依然会被编译,但不会被添加到编译好的项目当中。

      4 Maven build

      表示的是:执行已经定义好的maven命令。

      一个项目可以“Maven build...”功能定义n个maven命令,然后通过“Maven build”功能来执行想要执行的命令。

      Run Configurations...

      可通过这个功能,对已经自定义的maven命令进行新建、修改、运行、删除;

      如何删除多余的maven命令?

      选中不需要的maven命令,右键-->“删除”即可。

    3.maven其它命令说明

    mvn compile
    

      表示的是:对项目源代码进行编译。  

    生成的目录:

    mvn deploy
    

      表示的是:将项目发布到远程仓库。

    mvn dependency:tree
    

      表示的是:显示maven依赖树。

    mvn dependency:list

      表示的是:显示maven依赖列表。

    mvn package
    

      表示的是:编译项目并打成war包。

      跳过单元测试的两种方式:

      方式一:

    -DskipTests

      方式二:

    -Dmaven.test.skip=true

      表示的是:测试类不会被编译,或即使被编译也不会被添加到项目当中。

      另外,这个指令没有先后顺序,均能正常执行。  

      举例: 以打包并发布到本地仓库时,跳过测试类为例。

    // 方式一:形式一
    mvn install -DskipTests
    // 方式一:形式二
    mvn -DskipTests install
    // 方式二:形式一
    mvn install -Dmaven.test.skip=true
    // 方式二:形式二
    mvn -Dmaven.test.skip=true install

    写在最后

      哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

     相关推荐:

  • 相关阅读:
    Python获取会议部分的信息内容(不断完善中)
    TensorFlow学习笔记(UTF-8 问题解决 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte)
    Tensorflow学习笔记(对MNIST经典例程的)的代码注释与理解
    virtualenvwrapper
    最小二乘法与梯度下降的区别
    Git
    Jupyter
    Linux
    Iterm2
    Homebrew
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/9928241.html
Copyright © 2020-2023  润新知