1、创建 Maven 工程
①、在 src/main/java 新建包 com.ys.maven,然后在这个包中创建类 HelloMaven.java
package com.ys.maven;
public class HelloMaven {
//传入一个字符串并返回
public String Hello(String name){
return name;
}
}
②、在 src/test/java 新建包 com.ys.maven,然后在这个包中创建类 HelloTest.java
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 文件如下:
<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>
为什么要这样写,我们后面会详细讲解。
2、Maven 的常用命令
1、mvn compile 编译,将Java 源程序编译成 class 字节码文件。
2、mvn test 测试,并生成测试报告
3、mvn clean 将以前编译得到的旧的 class 字节码文件删除
4、mvn pakage 打包,动态 web工程打 war包,Java工程打 jar 包。
5、mvn install 将项目生成 jar 包放在仓库中,以便别的模块调用
①、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 包
上面部分来源于:https://www.cnblogs.com/ysocean/p/7416307.html
mvn install 包含 mvn clean吗
Maven三大生命周期
• 生命周期Maven有三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,这三套生命周期分别是:
• Clean Lifecycle 在进行真正的构建之前进行一些清理工作。
• Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。
• Site Lifecycle 生成项目报告,站点,发布站点。
• 再次强调一下它们是相互独立的,你可以仅仅调用clean来清理工作目录,仅仅调用site来生成站点。当然你也可以直接运行 mvn clean install site 运行所有这三套生命周期。
• 所以,不含。
再比如:
Clean生命周期一共包含了三个阶段:
pre-clean 执行一些需要在clean之前完成的工作
clean 移除所有上一次构建生成的文件
post-clean 执行一些需要在clean之后立刻完成的工作
mvn clean 中的clean就是上面的clean,在一个生命周期中,运行某个阶段的时候,它之前的所有阶段都会被运行,也就是说,mvn clean 等同于 mvn pre-clean clean ,如果我们运行 mvn post-clean ,那么 pre-clean,clean 都会被运行。这是Maven很重要的一个规则,可以大大简化命令行的输入。
记住,运行任何一个阶段的时候,它前面的所有阶段都会被运行,这也就是为什么我们运行mvn install 的时候,代码会被编译,测试,打包
package、install、deploy的联系与区别:
- package命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
- install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库
- deploy命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库