Maven使用入门
Maven的基本环境有了之后,咱们先看下一个简单的例子,初步了解下Maven,用idea创建一个简单的HelloWord的Maven项目如下,
POM简单介绍
在HelloWord这个项目下有一个pom.xml文件,内容如上图
pom.xml文件中:
第一行指定了xml文档的版本和编码格式
第二行声明了命名空间和xsd元素
modelVersion标签:指定了当前POM模型的版本,对于Maven2及Maven3来说,它只能是4.0.0
剩下的groupId、artifactId、version、name;其中groupId、artifactId、version这个三个标签是非重要的,在Maven的世界,任何的jar、pom或者war都是基于这个三个标签坐标进行定位的
groupId
: 定义属于哪个组,这个组往往和项目所在的组织或公司存在关联,例如刚我们的项目中groupId为“com.rubywinner.mvntest“
artifactId
:定义了当前Maven项目在组中的唯一ID,例如刚我们的项目中artifactId为 “HelloWord”
version
:定义了当前Maven项目自身的版本号,例如刚我们的项目中version为“1.0-SNAPSHOT”
最后剩余一个name
,它是对用户友好的项目名称,不是必须的,但是推荐使用
编写测试类
如下:
在HelloWord这个项目的目录下,执mvn clean compile命令,如下:
通过命令:
mvn clean compile
最终生成了一个目录target,在此目录下生成了最终编译的class文件HelloWord.class,这些都是maven帮我们完成的,如下图
接下来,我们可以增加测试,让maven帮我们自动化测试,具体操作如下:
首先增加第三方的测试依赖,junit依赖,只需要在pom.xml增加
<?xml version="1.0" encoding="UTF-8"?>
<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.rubywinner.mvntest</groupId>
<artifactId>HelloWord</artifactId>
<version>1.0-SNAPSHOT</version>
<name>Maven HelloWord Project</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
此时Maven通过坐标将依赖下载到本地,具体的我们在以后介绍,然后我们就可以开始写测试代码了,如下
package helloword;
import org.junit.Test;
public class HelloWordTest {
@Test
public void testSayHello(){
HelloWord helloWord = new HelloWord();
String result = helloWord.sayHello();
System.out.println("Maven test : "+result);
}
}
然后在项目路径下,执行 maven clean test 命令,如下:
上图中 1
是执行的脚本命令;2
是clean命令删除target目录,后续再重新生成;3
是Maven自动测试的具体信息,图中执行了我们刚刚编写的testSayHello()代码,并输出了正确的结果
命令行生成项目骨架
刚才的HelloWord项目,我们是通过手动创建的pom.xml,文件夹目录等,现在我们通过Maven命令和插件使用Maven原型机制,方式有两种
-
交互模式,如下:
mvn archetype:generate
在命令行执行 mvn archetype:generate,执行后会出现如下提示
出现让我们选择archetype的列表,总共提供了10中archetype,默认选择的是 “7” org.apache.maven.archetypes:maven-archetype-quickstart 这种模式,我们可以选择我们要的archetype,在这里我们选择 7,如下
选择7后,让我们输入“groupId”,例如输入“com.rubywinner.helloword”,回车,接着提示需要接着输入“artifactId”,例如输入“HelloWord”,回车,接着提示输入“version”默认为“1.0-SNAPSHOT”,我们采用默认值,直接回车即可
回车后,需要我们填写项目包信息,我们输入“helloword”如下
回车后,需要我们确认刚才我们输入的信息,如下
输入“Y”后,就会显示创建成功,如下:
同时在当前目录下就会生成一个HelloWord的Maven项目
-
非交互模式
mvn archetype:generate
在命令行执行 mvn archetype:generate -DgroupId=com.rubywinner.helloword -DartifactId=HelloWord2 -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false,如下:
同时在当前目录下就会生成一个HelloWord2的Maven项目
参考:https://maven.apache.org/
参考:https://www.cnblogs.com/baizihua/p/11519509.html
参考:《Maven实战》这本书