原创文章,禁止转载!
一、什么是Maven
Apache Maven是一个软件项目管理和综合工具。基于项目对象模型(POM)的概念,Maven可以从一个中心资料片管理项目构建,报告和文件。
Maven项目的结构和内容在一个XML文件中声明,pom.xml 项目对象模型(POM),这是整个Maven系统的基本单元。
Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。
Maven作为一个构建工具,不仅帮助我们自动化构建,还能抽象构建过程提供构建任务实现;它跨平台,对外提供了一致的操作接口。
二、为什么需要Maven
在多个开发团队环境时,Maven可以设置按标准在非常短的时间里完成配置工作。
Maven处理编译,分配,文档,团队协作和其他任务的无缝连接。
Maven增加可重用性并负责建立相关的任务。
Maven是跨平台的,无论在Windows、Linux、或者是Mac上,都可以使用同样的命令。
Maven最大化地消除了构建的重复,抽象了构建生命周期,并且为绝大部分的构建任务提供了已实现的插件。
Maven可以帮助我们标准化构建过程。
Maven帮助我们管理原本散落在项目中各个角落的项目信息。
Maven提供了一个免费的中央仓库,在其中可以找到任何流行的开源类库。
Maven对于项目目录结构、测试用例命名方法等内容都有既定的规则,可以说是约定优于配置。
三、Maven的安装与配置
1.检查JDK是否安装
2.下载Maven
请到Maven官网按照自己的需求自行下载。
3.本地安装
(1)将安装文件解压到指定目录
这里的安装目录是: E:\apache-maven-3.2.5
(2)设置环境变量
右键“计算机”,选择“属性”,之后点击“高级系统设置”,点击“环境变量”,来设置环境变量,有以下系统变量需要配置:
新建系统变量 M2_HOME 变量值:E:\apache-maven-3.2.5(安装文件的指定目录)
编辑系统变量 Path 添加变量值: %M2_HOME%\bin(多个值之间用分号隔开)
(3)验证是否配置成功
四、Maven入门(手动创建一个hello-world项目)
1.编写pom.xml
首先创建一个hello-world的文件夹,打开文件夹,新建一个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.maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mvn.mvnbook</groupId>
<artifactId>hello-world</artifactId>
<version>1.0-SNAPSHOT</version>
<name>Maven Hello World Project</name>
</project>
2.编写主代码
Maven主代码一般放在src/main/java目录下,在这目录下新建com/mvn/mvnwork/hello-world文件夹,在这个文件夹下新建HelloWorld.java
代码内容如下:
package com.mvn.mvnbook.helloworld;
public class HelloWorld{
public String sayHello(){
return "HelloMaven!";
}
public static void main(String[] args){
System.out.print(new HelloWorld().sayHello());
}
}
代码编写完毕后,使用Maven进行编译
打开cmd,在项目根目录下位置输入mvn clean compile
3.编写测试代码
同样在创建src/test/java目录,在这目录下新建com/mvn/mvnwork/hello-world文件夹,在这个文件夹下新建HelloWorldTest.java
(1)首先给项目一个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.maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mvn.mvnbook</groupId>
<artifactId>hello-world</artifactId>
<version>1.0-SNAPSHOT</version>
<name>Maven Hello World Project</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
(2)编写HelloWorldText.java
package com.mvn.mvnbook.helloworld;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class HelloWorldTest{
@Test
public void testSayHello(){
HelloWorld helloWorld = new Helloworld();
String result = helloWorld.sayHello();
assertEquals("HelloMaven!",result);
}
}
(3)调用Maven进行测试
运行 mvn clean test
4.打包和运行
(1)打包:Hello-world项目中的pom没有指定打包的类型,默认使用的是.jar格式,简单使用mvn clean package进行打包,可以看到如下输出:
类似的,Maven 会在打包之前使用编译测试等操作。会在target中出现一个根据artifact-version.jar命名的jar包
(2)为了能让其他的Maven项目直接引用这个jar,需要一个安装的步骤,执行mvn clean install:
(3)为了生成可执行的jar文件,需要在pom.xml中配置maven-shade-plugin插件
Pom.xml中的代码如下:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<!-- <resource>META-INF/spring.handlers</resource> -->
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.mvn.mvnbook.helloworld.HelloWorld</mainClass>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<!-- <resource>META-INF/spring.schemas</resource> -->
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
执行mvn clean install:
在项目根目录下执行hello-world-1.0-SNAPSHOT.jar文件
执行命令为:java -jar target\hello-world-1.0-SNAPSHOT.jar,即可得到HelloMaven!的输出结果。
五、使用eclipse新建一个Maven项目
1.检查eclipse的maven插件是否安装成功
如果没有安装请在此添加:1)点击Installations –> add 选择maven安装目录,这里我的Maven安装目录为E:\apache-maven-3.2.5,选择你的Maven安装目录,并点击确定, 之后可以点击Apply,点击OK,即可完成。
2)然后,我们在Maven的配置界面,设置User Settings。
Global Settings选择maven 安装目录下conf文件夹下的settings.xml,这里我的Maven安装目录为E:\apache-maven-3.2.5\conf\settings.xml(这是全局settings)(我的目录是用户的settings,配置时可自行选择,不过推荐使用用户范围的settings),选择你的Maven安装目录,检查Local Repository 项,如果为D:/maven/repository则配置成功,否则重新配置上一步。
2.创建Maven项目
1)我们在Eclipse菜单栏中点击File->New->Other->Maven,在弹出的对话框中会看到,如下图所示,点击next:
2)勾选Create a simple project(skip archetype selection),然后点击next,如下图:
3)填写Group id和Artifact id,Version默认,Packaging默认为jar,Name,Description选填,其他的不填。(如果有父级的项目,就填写下面父级项目的Group id、Artifact id等)
4)点击finish后,eclipse会生成如下项目:
5)如果我们想创建一个Maven的web项目,把第三步的Packaging的类型改为war,之后点击Finish即可,如图所示:
6)至此,maven项目创建完成。