这章咱们讲讲几个经常使用的 Maven 命令。因为执行命令是在工程的基础上来的,因此咱们要先建立一个 Maven 工程,具体如何建立,在上一篇博客已经介绍了:http://www.cnblogs.com/ysocean/p/7420373.htmlhtml
①、在 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
一、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 deploy依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9个阶段。webapp
由上面的分析可知主要区别以下,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 包